diff --git a/DEPS b/DEPS
index f57094ac..08bb6722 100644
--- a/DEPS
+++ b/DEPS
@@ -162,11 +162,11 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling Skia
   # and whatever else without interference from each other.
-  'skia_revision': '4c2146f2ca2a1c3a6735f597a0552e2146971edd',
+  'skia_revision': '2137f90b9d9898f074699e3253584d5df943e66c',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling V8
   # and whatever else without interference from each other.
-  'v8_revision': 'c38bb894636dfbea39aac5754446dfe107557498',
+  'v8_revision': '92a0888e9960118fd643a9d151b7fd4d1c1ffe85',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling swarming_client
   # and whatever else without interference from each other.
@@ -174,15 +174,15 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling ANGLE
   # and whatever else without interference from each other.
-  'angle_revision': '01f7e545a37e83529a36b63e14c027cdb25aae30',
+  'angle_revision': '273175cdf44e1cba2339580db96432ece6cbfee7',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling SwiftShader
   # and whatever else without interference from each other.
-  'swiftshader_revision': '645a8dea641aae363ee9e47fa7fcb9c930312365',
+  'swiftshader_revision': 'cc3f098616852eb7520fc4fd695f6b7db8aa9b3a',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling PDFium
   # and whatever else without interference from each other.
-  'pdfium_revision': 'c171a2106b2b70c38f7cca7c26da9b67c413d05d',
+  'pdfium_revision': '693460a3a7b74d8830a40808684d29876b3c13b9',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling BoringSSL
   # and whatever else without interference from each other.
@@ -225,7 +225,7 @@
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling catapult
   # and whatever else without interference from each other.
-  'catapult_revision': 'a8bbe3b252a54046040b0b4725778d2fd95097ed',
+  'catapult_revision': 'b079ab860152f851bbd13ecedc759145d034e975',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling libFuzzer
   # and whatever else without interference from each other.
@@ -297,7 +297,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': 'c3b613296d26ee9ffa1d0ecdb6e0bc8ab3ff9d7a',
+  'dawn_revision': '05be0ff348150eceafcdc89bed8526de60839414',
   # Three lines of non-changing comments so that
   # the commit queue can handle CLs rolling feed
   # and whatever else without interference from each other.
@@ -853,7 +853,7 @@
 
   # Build tools for Chrome OS. Note: This depends on third_party/pyelftools.
   'src/third_party/chromite': {
-      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + 'b87974eebeaa98e5df5c03ddf1c634b5ebd1fd42',
+      'url': Var('chromium_git') + '/chromiumos/chromite.git' + '@' + '8b16ac056b1ac1d94340578ceda8629641394422',
       'condition': 'checkout_linux',
   },
 
@@ -878,7 +878,7 @@
   },
 
   'src/third_party/depot_tools':
-    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '8b95534d333ce22acd9e30d972d09d323950483c',
+    Var('chromium_git') + '/chromium/tools/depot_tools.git' + '@' + '7211cf64444c3cac9fba34d32ca35de31a96f545',
 
   'src/third_party/devtools-node-modules':
     Var('chromium_git') + '/external/github.com/ChromeDevTools/devtools-node-modules' + '@' + Var('devtools_node_modules_revision'),
@@ -1257,7 +1257,7 @@
   },
 
   'src/third_party/perfetto':
-    Var('android_git') + '/platform/external/perfetto.git' + '@' + '61918356b65e603c99843c7351748ccce6d2b775',
+    Var('android_git') + '/platform/external/perfetto.git' + '@' + '0b27dd1ff740231de4b124217afa6e6ef0dc5e72',
 
   'src/third_party/perl': {
       'url': Var('chromium_git') + '/chromium/deps/perl.git' + '@' + '6f3e5028eb65d0b4c5fdd792106ac4c84eee1eb3',
@@ -1425,7 +1425,7 @@
     Var('chromium_git') + '/external/khronosgroup/webgl.git' + '@' + '7c4e67ff117d6c640e6dd17989afe2fb7da7eecb',
 
   'src/third_party/webrtc':
-    Var('webrtc_git') + '/src.git' + '@' + 'af3fdc069d528439fcd208ed4c4afd406ba9d63c',
+    Var('webrtc_git') + '/src.git' + '@' + 'fc604aa990d5313307d2950b1e68cfa61e99948d',
 
   'src/third_party/xdg-utils': {
       'url': Var('chromium_git') + '/chromium/deps/xdg-utils.git' + '@' + 'd80274d5869b17b8c9067a1022e4416ee7ed5e0d',
@@ -1487,7 +1487,7 @@
     Var('chromium_git') + '/v8/v8.git' + '@' +  Var('v8_revision'),
 
   'src-internal': {
-    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@30eeb0c5bf9c4c2786b1468591e784c20c318bbd',
+    'url': 'https://chrome-internal.googlesource.com/chrome/src-internal.git@a130294887fc4eade0e6df82bc5e1219602dc6a8',
     'condition': 'checkout_src_internal',
   },
 
diff --git a/PRESUBMIT.py b/PRESUBMIT.py
index dbd77dc..e92f01fc 100644
--- a/PRESUBMIT.py
+++ b/PRESUBMIT.py
@@ -3307,7 +3307,8 @@
 
 def _CheckAndroidWebkitImports(input_api, output_api):
   """Checks that code uses org.chromium.base.Callback instead of
-     android.widget.ValueCallback except in the WebView glue layer.
+     android.webview.ValueCallback except in the WebView glue layer
+     and WebLayer.
   """
   valuecallback_import_pattern = input_api.re.compile(
       r'^import android\.webkit\.ValueCallback;$')
@@ -3319,7 +3320,8 @@
       black_list=(_EXCLUDED_PATHS +
                   _TEST_CODE_EXCLUDED_PATHS +
                   input_api.DEFAULT_BLACK_LIST +
-                  (r'^android_webview[\\/]glue[\\/].*',)),
+                  (r'^android_webview[\\/]glue[\\/].*',
+                   r'^weblayer[\\/].*',)),
       white_list=[r'.*\.java$'])
 
   for f in input_api.AffectedSourceFiles(sources):
diff --git a/android_webview/glue/java/src/com/android/webview/chromium/SharedWebViewChromium.java b/android_webview/glue/java/src/com/android/webview/chromium/SharedWebViewChromium.java
index b40334b2d..a57ff81 100644
--- a/android_webview/glue/java/src/com/android/webview/chromium/SharedWebViewChromium.java
+++ b/android_webview/glue/java/src/com/android/webview/chromium/SharedWebViewChromium.java
@@ -28,7 +28,7 @@
     private SharedWebViewContentsClientAdapter mContentsClientAdapter;
 
     // Default WebViewClient used to avoid null checks.
-    final static WebViewClient sNullWebViewClient = new WebViewClient();
+    static final WebViewClient sNullWebViewClient = new WebViewClient();
     // The WebViewClient instance that was passed to WebView.setWebViewClient().
     private WebViewClient mWebViewClient = sNullWebViewClient;
     private WebChromeClient mWebChromeClient;
diff --git a/android_webview/java/src/org/chromium/android_webview/AwActionModeCallback.java b/android_webview/java/src/org/chromium/android_webview/AwActionModeCallback.java
index 7a27be7..6453184 100644
--- a/android_webview/java/src/org/chromium/android_webview/AwActionModeCallback.java
+++ b/android_webview/java/src/org/chromium/android_webview/AwActionModeCallback.java
@@ -14,6 +14,7 @@
 import android.view.Menu;
 import android.view.MenuItem;
 
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.content.R;
 import org.chromium.content_public.browser.ActionModeCallbackHelper;
@@ -61,8 +62,8 @@
     private boolean isWebSearchAvailable() {
         Intent intent = new Intent(Intent.ACTION_WEB_SEARCH);
         intent.putExtra(SearchManager.EXTRA_NEW_SEARCH, true);
-        return mContext.getPackageManager().queryIntentActivities(intent,
-                PackageManager.MATCH_DEFAULT_ONLY).size() > 0;
+        return !PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
+                        .isEmpty();
     }
 
     @Override
diff --git a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java
index 2319fe09..6614412 100644
--- a/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java
+++ b/android_webview/tools/system_webview_shell/apk/src/org/chromium/webview_shell/WebViewBrowserActivity.java
@@ -52,6 +52,7 @@
 
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.StrictModeContext;
 
 import java.io.File;
@@ -703,7 +704,7 @@
         // check if there is a specialized app that had registered itself
         // for this kind of an intent.
         Matcher m = BROWSER_URI_SCHEMA.matcher(url);
-        if (m.matches() && !isSpecializedHandlerAvailable(context, intent)) {
+        if (m.matches() && !isSpecializedHandlerAvailable(intent)) {
             return false;
         }
         // Sanitize the Intent, ensuring web pages can not bypass browser
@@ -737,10 +738,9 @@
     /**
      * Search for intent handlers that are specific to the scheme of the URL in the intent.
      */
-    private static boolean isSpecializedHandlerAvailable(Context context, Intent intent) {
-        PackageManager pm = context.getPackageManager();
-        List<ResolveInfo> handlers = pm.queryIntentActivities(intent,
-                PackageManager.GET_RESOLVED_FILTER);
+    private static boolean isSpecializedHandlerAvailable(Intent intent) {
+        List<ResolveInfo> handlers = PackageManagerUtils.queryIntentActivities(
+                intent, PackageManager.GET_RESOLVED_FILTER);
         if (handlers == null || handlers.size() == 0) {
             return false;
         }
diff --git a/ash/assistant/assistant_controller.cc b/ash/assistant/assistant_controller.cc
index 20398f5..7a4eca15 100644
--- a/ash/assistant/assistant_controller.cc
+++ b/ash/assistant/assistant_controller.cc
@@ -233,14 +233,14 @@
 void AssistantController::OpenUrl(const GURL& url,
                                   bool in_background,
                                   bool from_server) {
-  auto* android_helper = AndroidIntentHelper::GetInstance();
-  if (url.SchemeIs(kAndroidIntentScheme) && android_helper) {
-    android_helper->LaunchAndroidIntent(url.spec());
+  if (assistant::util::IsDeepLinkUrl(url)) {
+    NotifyDeepLinkReceived(url);
     return;
   }
 
-  if (assistant::util::IsDeepLinkUrl(url)) {
-    NotifyDeepLinkReceived(url);
+  auto* android_helper = AndroidIntentHelper::GetInstance();
+  if (url.SchemeIs(kAndroidIntentScheme) && !android_helper) {
+    NOTREACHED();
     return;
   }
 
@@ -248,14 +248,18 @@
   // open the specified |url| in a new browser tab.
   NotifyOpeningUrl(url, in_background, from_server);
 
-  // The new tab should be opened with a user activation since the user
-  // interacted with the Assistant to open the url. |in_background| describes
-  // the relationship between |url| and Assistant UI, not the browser. As such,
-  // the browser will always be instructed to open |url| in a new browser tab
-  // and Assistant UI state will be updated downstream to respect
-  // |in_background|.
-  NewWindowDelegate::GetInstance()->NewTabWithUrl(
-      url, /*from_user_interaction=*/true);
+  if (url.SchemeIs(kAndroidIntentScheme)) {
+    android_helper->LaunchAndroidIntent(url.spec());
+  } else {
+    // The new tab should be opened with a user activation since the user
+    // interacted with the Assistant to open the url. |in_background| describes
+    // the relationship between |url| and Assistant UI, not the browser. As
+    // such, the browser will always be instructed to open |url| in a new
+    // browser tab and Assistant UI state will be updated downstream to respect
+    // |in_background|.
+    NewWindowDelegate::GetInstance()->NewTabWithUrl(
+        url, /*from_user_interaction=*/true);
+  }
   NotifyUrlOpened(url, from_server);
 }
 
diff --git a/ash/assistant/assistant_interaction_controller.cc b/ash/assistant/assistant_interaction_controller.cc
index 3c69811d..afda81ef 100644
--- a/ash/assistant/assistant_interaction_controller.cc
+++ b/ash/assistant/assistant_interaction_controller.cc
@@ -19,6 +19,7 @@
 #include "ash/assistant/util/assistant_util.h"
 #include "ash/assistant/util/deep_link_util.h"
 #include "ash/assistant/util/histogram_util.h"
+#include "ash/public/cpp/android_intent_helper.h"
 #include "ash/public/cpp/app_list/app_list_features.h"
 #include "ash/public/cpp/ash_pref_names.h"
 #include "ash/public/cpp/assistant/assistant_setup.h"
@@ -29,6 +30,7 @@
 #include "ash/wm/tablet_mode/tablet_mode_controller.h"
 #include "base/bind.h"
 #include "base/optional.h"
+#include "base/strings/string_util.h"
 #include "base/strings/utf_string_conversions.h"
 #include "chromeos/services/assistant/public/features.h"
 #include "components/prefs/pref_service.h"
@@ -41,6 +43,8 @@
 namespace {
 
 constexpr int kWarmerWelcomesMaxTimesTriggered = 3;
+constexpr char kAndroidIntentScheme[] = "intent://";
+constexpr char kAndroidIntentPrefix[] = "#Intent";
 
 // Helpers ---------------------------------------------------------------------
 
@@ -657,6 +661,40 @@
   assistant_controller_->OpenUrl(url, in_background, /*from_server=*/true);
 }
 
+void AssistantInteractionController::OnOpenAppResponse(
+    chromeos::assistant::mojom::AndroidAppInfoPtr app_info,
+    OnOpenAppResponseCallback callback) {
+  if (model_.interaction_state() != InteractionState::kActive)
+    return;
+
+  auto* android_helper = AndroidIntentHelper::GetInstance();
+  if (!android_helper) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  auto intent = android_helper->GetAndroidAppLaunchIntent(std::move(app_info));
+  if (!intent.has_value()) {
+    std::move(callback).Run(false);
+    return;
+  }
+
+  // Common Android intent might starts with intent scheme "intent://" or
+  // Android app scheme "android-app://". But it might also only contains
+  // reference starts with "#Intent".
+  // However, GURL requires the URL spec to be non-empty, which invalidate the
+  // intent starts with "#Intent". For this case, we adding the Android intent
+  // scheme to the intent to validate it for GURL constructor.
+  auto intent_str = intent.value();
+  if (base::StartsWith(intent_str, kAndroidIntentPrefix,
+                       base::CompareCase::SENSITIVE)) {
+    intent_str = kAndroidIntentScheme + intent_str;
+  }
+  assistant_controller_->OpenUrl(GURL(intent_str), /*in_background=*/false,
+                                 /*from_server=*/true);
+  std::move(callback).Run(true);
+}
+
 void AssistantInteractionController::OnDialogPlateButtonPressed(
     AssistantButtonId id) {
   if (id == AssistantButtonId::kKeyboardInputToggle) {
diff --git a/ash/assistant/assistant_interaction_controller.h b/ash/assistant/assistant_interaction_controller.h
index 927e8bf48..dabb051 100644
--- a/ash/assistant/assistant_interaction_controller.h
+++ b/ash/assistant/assistant_interaction_controller.h
@@ -98,6 +98,8 @@
       std::vector<AssistantSuggestionPtr> response) override;
   void OnTextResponse(const std::string& response) override;
   void OnOpenUrlResponse(const GURL& url, bool in_background) override;
+  void OnOpenAppResponse(chromeos::assistant::mojom::AndroidAppInfoPtr app_info,
+                         OnOpenAppResponseCallback callback) override;
   void OnSpeechRecognitionStarted() override;
   void OnSpeechRecognitionIntermediateResult(
       const std::string& high_confidence_text,
diff --git a/ash/components/strings/ash_components_strings_nl.xtb b/ash/components/strings/ash_components_strings_nl.xtb
index e552e63..5c12381 100644
--- a/ash/components/strings/ash_components_strings_nl.xtb
+++ b/ash/components/strings/ash_components_strings_nl.xtb
@@ -43,7 +43,7 @@
 <translation id="2441202986792279177">Snel schakelen tussen vensters</translation>
 <translation id="2454251766545114447">Display uitzoomen</translation>
 <translation id="2478303094958140141">ChromeVox (gesproken feedback) in- of uitschakelen</translation>
-<translation id="2488661730534396940">Activeer het bureaublad aan de linkerkant</translation>
+<translation id="2488661730534396940">Het bureaublad aan de linkerkant activeren</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">Omlaag bladeren op de webpagina</translation>
 <translation id="2574014812750545982">Zoomniveau op de pagina resetten</translation>
@@ -103,7 +103,7 @@
 <translation id="4642092649622328492">Gedeeltelijk screenshot maken</translation>
 <translation id="4698850295812410683">Stylustools weergeven</translation>
 <translation id="4801989101741319327">Naar het eind van het volgende woord gaan</translation>
-<translation id="4866066940972151697">Activeer het bureaublad aan de rechterkant</translation>
+<translation id="4866066940972151697">Het bureaublad aan de rechterkant activeren</translation>
 <translation id="4916163929714267752">De link openen in een nieuw venster</translation>
 <translation id="5030659775136592441">Bookmarkmanager weergeven</translation>
 <translation id="5034421018520995080">Naar bovenkant van pagina gaan</translation>
diff --git a/ash/components/strings/ash_components_strings_pt-BR.xtb b/ash/components/strings/ash_components_strings_pt-BR.xtb
index 8c5cb4d0..f4e2a4f 100644
--- a/ash/components/strings/ash_components_strings_pt-BR.xtb
+++ b/ash/components/strings/ash_components_strings_pt-BR.xtb
@@ -23,7 +23,7 @@
 <translation id="169515659049020177">Shift</translation>
 <translation id="1732295673545939435"><ph name="MODIFIER1" /><ph name="SEPARATOR1" /><ph name="MODIFIER2" /><ph name="SEPARATOR2" /><ph name="KEY" /></translation>
 <translation id="1733525068429116555">Adicionar www. e .com à entrada na barra de endereço e depois abrir a página</translation>
-<translation id="1872219238824176091">Remove a área de trabalho atual</translation>
+<translation id="1872219238824176091">Remover a área de trabalho atual</translation>
 <translation id="1920446759863417809"><ph name="SHIFT1" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" /> e depois <ph name="SHIFT2" /><ph name="SEPARATOR3" /><ph name="TAB" /> ou <ph name="LEFT" /></translation>
 <translation id="1996162290124031907">Ir para a próxima guia</translation>
 <translation id="2010818616644390445">Ir para a última guia da janela</translation>
@@ -43,7 +43,7 @@
 <translation id="2441202986792279177">Alternar rapidamente entre janelas</translation>
 <translation id="2454251766545114447">Diminuir zoom da tela</translation>
 <translation id="2478303094958140141">Ativar ou desativar o ChromeVox (feedback falado)</translation>
-<translation id="2488661730534396940">Ativa área de trabalho à esquerda</translation>
+<translation id="2488661730534396940">Ativar a área de trabalho à esquerda</translation>
 <translation id="2515586267016047495">Alt</translation>
 <translation id="2530339807289914946">Rolar a página da Web para baixo</translation>
 <translation id="2574014812750545982">Redefinir nível de zoom na página</translation>
@@ -51,7 +51,7 @@
 <translation id="2685170433750953446"><ph name="SHIFT" /><ph name="SEPARATOR1" /><ph name="ALT" /><ph name="SEPARATOR2" /><ph name="L" /> e depois <ph name="TAB" /> ou <ph name="RIGHT" /></translation>
 <translation id="2750942583782703988">Atualizar a página atual</translation>
 <translation id="2764005613199379871">Colocar o foco na barra de endereço de pesquisa</translation>
-<translation id="2774822903829597107">Cria uma nova área de trabalho</translation>
+<translation id="2774822903829597107">Criar uma nova área de trabalho</translation>
 <translation id="2789868185375229787">Diminuir zoom na página</translation>
 <translation id="2804480015716812239">Pressione <ph name="ALT" /> e clique em um link</translation>
 <translation id="2830827904629746450">Ancorar uma janela à direita</translation>
@@ -72,7 +72,7 @@
 <translation id="344577624355799426"><ph name="ALT" /> ou <ph name="SEARCH" /><ph name="SEPARATOR" /><ph name="DOWN" /></translation>
 <translation id="353037708190149633">Salvar todas as páginas abertas na janela atual nos favoritos em uma nova pasta</translation>
 <translation id="355103131818127604">Abrir o link em uma nova guia no plano de fundo</translation>
-<translation id="3622741593887335780">Aumentar zoom (quando ancorado OU se a lupa de tela cheia estiver ativada)</translation>
+<translation id="3622741593887335780">Aumentar zoom (quando encaixado na base OU se a lupa de tela cheia estiver ativada)</translation>
 <translation id="3649256019230929621">Minimizar janela</translation>
 <translation id="3655154169297074232">Guias e janelas</translation>
 <translation id="3668361878347172356">Refazer a última ação</translation>
@@ -103,7 +103,7 @@
 <translation id="4642092649622328492">Fazer uma captura de tela parcial</translation>
 <translation id="4698850295812410683">Mostrar ferramentas da stylus</translation>
 <translation id="4801989101741319327">Mover para o fim da próxima palavra</translation>
-<translation id="4866066940972151697">Ativa a área de trabalho à direita</translation>
+<translation id="4866066940972151697">Ativar a área de trabalho à direita</translation>
 <translation id="4916163929714267752">Abrir o link em uma nova janela</translation>
 <translation id="5030659775136592441">Mostrar gerenciador de favoritos</translation>
 <translation id="5034421018520995080">Ir para a parte superior da página</translation>
@@ -142,7 +142,7 @@
 <translation id="6425378783626925378">Clicar nos ícones de 1 a 8 na estante</translation>
 <translation id="6435207348963613811">Destacar o item anterior na estante</translation>
 <translation id="6445033640292336367">Voltar a guia para a posição original</translation>
-<translation id="6474744297082284761">Diminuir zoom (quando ancorado OU se a lupa de tela cheia estiver ativada)</translation>
+<translation id="6474744297082284761">Diminuir zoom (quando encaixado na base OU se a lupa de tela cheia estiver ativada)</translation>
 <translation id="649811797655257835">Selecione o arquivo e pressione <ph name="SPACE" /></translation>
 <translation id="6556040137485212400">Abrir a janela que ficou sem ser usada há mais tempo</translation>
 <translation id="666343722268997814">Abrir menu de clique com o botão direito para o item destacado</translation>
diff --git a/ash/public/cpp/android_intent_helper.h b/ash/public/cpp/android_intent_helper.h
index 94b4278..ee67731 100644
--- a/ash/public/cpp/android_intent_helper.h
+++ b/ash/public/cpp/android_intent_helper.h
@@ -9,6 +9,7 @@
 
 #include "ash/public/cpp/ash_public_export.h"
 #include "base/macros.h"
+#include "chromeos/services/assistant/public/mojom/assistant.mojom.h"
 
 namespace ash {
 
@@ -17,8 +18,14 @@
  public:
   static AndroidIntentHelper* GetInstance();
 
+  // Launch the given Android |intent|.
   virtual void LaunchAndroidIntent(const std::string& intent) = 0;
 
+  // Get the intent that can be used to launch an Android activity specified by
+  // the |app_info|.
+  virtual base::Optional<std::string> GetAndroidAppLaunchIntent(
+      chromeos::assistant::mojom::AndroidAppInfoPtr app_info) = 0;
+
  protected:
   AndroidIntentHelper();
   virtual ~AndroidIntentHelper();
diff --git a/ash/shelf/scrollable_shelf_view.cc b/ash/shelf/scrollable_shelf_view.cc
index db757ae..63e52fb2 100644
--- a/ash/shelf/scrollable_shelf_view.cc
+++ b/ash/shelf/scrollable_shelf_view.cc
@@ -40,8 +40,12 @@
     kArrowButtonSize + kArrowButtonEndPadding + kDistanceToArrowButton;
 
 // The gesture fling event with the velocity smaller than the threshold will be
-// neglected.
-constexpr int kFlingVelocityThreshold = 1000;
+// ignored.
+constexpr int kGestureFlingVelocityThreshold = 1000;
+
+// The mouse wheel event (including touchpad scrolling) with the main axis
+// offset smaller than the threshold will be ignored.
+constexpr int KScrollOffsetThreshold = 20;
 
 // Horizontal size of the tap areafor the overflow arrow button.
 constexpr int kArrowButtonTapAreaHorizontal = 32;
@@ -592,6 +596,11 @@
 }
 
 void ScrollableShelfView::OnMouseEvent(ui::MouseEvent* event) {
+  if (event->IsMouseWheelEvent()) {
+    HandleMouseWheelEvent(event->AsMouseWheelEvent());
+    return;
+  }
+
   // The mouse event's location may be outside of ShelfView but within the
   // bounds of the ScrollableShelfView. Meanwhile, ScrollableShelfView should
   // handle the mouse event consistently with ShelfView. To achieve this,
@@ -844,15 +853,16 @@
 
   if (event.type() == ui::ET_SCROLL_FLING_START) {
     const bool is_horizontal_alignment = GetShelf()->IsHorizontalAlignment();
-
-    int scroll_velocity = is_horizontal_alignment
-                              ? event.details().velocity_x()
-                              : event.details().velocity_y();
-    if (abs(scroll_velocity) < kFlingVelocityThreshold)
+    if (!ShouldHandleScroll(gfx::Vector2dF(event.details().velocity_x(),
+                                           event.details().velocity_y()),
+                            /*is_gesture_fling=*/true)) {
       return false;
+    }
 
     layout_strategy_ = layout_strategy_before_main_axis_scrolling_;
-
+    const int scroll_velocity = is_horizontal_alignment
+                                    ? event.details().velocity_x()
+                                    : event.details().velocity_y();
     float page_scrolling_offset =
         CalculatePageScrollingOffset(scroll_velocity < 0);
     if (is_horizontal_alignment) {
@@ -878,6 +888,35 @@
   return true;
 }
 
+void ScrollableShelfView::HandleMouseWheelEvent(ui::MouseWheelEvent* event) {
+  // Note that the scrolling from touchpad is propagated as mouse wheel event.
+
+  // When shelf is horizontally aligned, the mouse wheel event may be handled
+  // by AppList.
+  if (!ShouldHandleScroll(gfx::Vector2dF(event->x_offset(), event->y_offset()),
+                          /*is_gesture_fling=*/false) &&
+      GetShelf()->IsHorizontalAlignment()) {
+    GetShelf()->ProcessMouseWheelEvent(event);
+    return;
+  }
+
+  event->SetHandled();
+
+  // Scrolling the mouse wheel may create multiple mouse wheel events at the
+  // same time. If the scrollable shelf view is during scrolling animation at
+  // this moment, do not handle the mouse wheel event.
+  if (shelf_view_->layer()->GetAnimator()->is_animating())
+    return;
+
+  if (GetShelf()->IsHorizontalAlignment()) {
+    ScrollByXOffset(CalculatePageScrollingOffset(event->x_offset() < 0),
+                    /*animating=*/true);
+  } else {
+    ScrollByYOffset(CalculatePageScrollingOffset(event->y_offset() < 0),
+                    /*animating=*/true);
+  }
+}
+
 void ScrollableShelfView::ScrollByXOffset(float x_offset, bool animating) {
   ScrollToXOffset(scroll_offset_.x() + x_offset, animating);
 }
@@ -1065,4 +1104,14 @@
   return available_length >= preferred_length;
 }
 
+bool ScrollableShelfView::ShouldHandleScroll(const gfx::Vector2dF& offset,
+                                             bool is_gesture_scrolling) const {
+  const float main_axis_offset =
+      GetShelf()->IsHorizontalAlignment() ? offset.x() : offset.y();
+
+  const int threshold = is_gesture_scrolling ? kGestureFlingVelocityThreshold
+                                             : KScrollOffsetThreshold;
+  return abs(main_axis_offset) > threshold;
+}
+
 }  // namespace ash
diff --git a/ash/shelf/scrollable_shelf_view.h b/ash/shelf/scrollable_shelf_view.h
index f34879e..fa57d088 100644
--- a/ash/shelf/scrollable_shelf_view.h
+++ b/ash/shelf/scrollable_shelf_view.h
@@ -188,6 +188,8 @@
   // consumed.
   bool ProcessGestureEvent(const ui::GestureEvent& event);
 
+  void HandleMouseWheelEvent(ui::MouseWheelEvent* event);
+
   // Scrolls the view by distance of |x_offset| or |y_offset|. |animating|
   // indicates whether the animation displays. |x_offset| or |y_offset| has to
   // be float. Otherwise the slow gesture drag is neglected.
@@ -230,6 +232,12 @@
   // Returns whether there is available space to accommodate all shelf icons.
   bool CanFitAllAppsWithoutScrolling() const;
 
+  // Returns whether scrolling should be handled. |is_gesture_fling| is true
+  // when the scrolling is triggered by gesture fling event; when it is false,
+  // the scrolling is triggered by touch pad or mouse wheel event.
+  bool ShouldHandleScroll(const gfx::Vector2dF& offset,
+                          bool is_gesture_fling) const;
+
   LayoutStrategy layout_strategy_ = kNotShowArrowButtons;
 
   // Child views Owned by views hierarchy.
diff --git a/ash/shelf/shelf.cc b/ash/shelf/shelf.cc
index e3447f0..d96c88a0 100644
--- a/ash/shelf/shelf.cc
+++ b/ash/shelf/shelf.cc
@@ -289,8 +289,9 @@
     shelf_layout_manager_->ProcessMouseEventFromShelf(event);
 }
 
-void Shelf::ProcessMouseWheelEvent(const ui::MouseWheelEvent& event) {
-  Shell::Get()->app_list_controller()->ProcessMouseWheelEvent(event);
+void Shelf::ProcessMouseWheelEvent(ui::MouseWheelEvent* event) {
+  event->SetHandled();
+  Shell::Get()->app_list_controller()->ProcessMouseWheelEvent(*event);
 }
 
 void Shelf::AddObserver(ShelfObserver* observer) {
diff --git a/ash/shelf/shelf.h b/ash/shelf/shelf.h
index 4a99a6dd..e007719 100644
--- a/ash/shelf/shelf.h
+++ b/ash/shelf/shelf.h
@@ -138,7 +138,7 @@
   void ProcessMouseEvent(const ui::MouseEvent& event);
 
   // Handles a mousewheel scroll event coming from the shelf.
-  void ProcessMouseWheelEvent(const ui::MouseWheelEvent& event);
+  void ProcessMouseWheelEvent(ui::MouseWheelEvent* event);
 
   void AddObserver(ShelfObserver* observer);
   void RemoveObserver(ShelfObserver* observer);
diff --git a/ash/shelf/shelf_navigation_widget.cc b/ash/shelf/shelf_navigation_widget.cc
index aea995c..4d3cd94 100644
--- a/ash/shelf/shelf_navigation_widget.cc
+++ b/ash/shelf/shelf_navigation_widget.cc
@@ -247,9 +247,13 @@
       tablet_mode ? GetSecondButtonBounds() : GetFirstButtonBounds());
   GetBackButton()->SetBoundsRect(GetFirstButtonBounds());
 
-  delegate_->SetBackground(views::CreateRoundedRectBackground(
-      ShelfConfig::Get()->shelf_control_permanent_highlight_background(),
-      ShelfConfig::Get()->control_border_radius()));
+  if (IsTabletMode() && ShelfConfig::Get()->is_in_app()) {
+    delegate_->SetBackground(views::CreateSolidBackground(SK_ColorTRANSPARENT));
+  } else {
+    delegate_->SetBackground(views::CreateRoundedRectBackground(
+        ShelfConfig::Get()->shelf_control_permanent_highlight_background(),
+        ShelfConfig::Get()->control_border_radius()));
+  }
 }
 
 }  // namespace ash
diff --git a/ash/shelf/shelf_view.cc b/ash/shelf/shelf_view.cc
index 5b80259c..30dfc93 100644
--- a/ash/shelf/shelf_view.cc
+++ b/ash/shelf/shelf_view.cc
@@ -611,8 +611,7 @@
 
   switch (event->type()) {
     case ui::ET_MOUSEWHEEL:
-      event->SetHandled();
-      shelf_->ProcessMouseWheelEvent(*event->AsMouseWheelEvent());
+      // The mouse wheel event is handled by ScrollableShelfView.
       break;
     case ui::ET_MOUSE_PRESSED:
       if (!event->IsOnlyLeftMouseButton()) {
diff --git a/ash/strings/ash_strings_da.xtb b/ash/strings/ash_strings_da.xtb
index e207c491..2245f53 100644
--- a/ash/strings/ash_strings_da.xtb
+++ b/ash/strings/ash_strings_da.xtb
@@ -256,7 +256,7 @@
 <translation id="4585337515783392668">Stop cast på en ukendt modtager</translation>
 <translation id="4628757576491864469">Enheder</translation>
 <translation id="4659419629803378708">ChromeVox er aktiveret</translation>
-<translation id="4665114317261903604">Aktivér Forstyr ikke. <ph name="STATE_TEXT" /></translation>
+<translation id="4665114317261903604">Slå Forstyr ikke til eller fra. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">Lås enheden op med forældrekode</translation>
 <translation id="4731797938093519117">Forældreadgang</translation>
 <translation id="4734965478015604180">Vandret</translation>
diff --git a/ash/strings/ash_strings_fil.xtb b/ash/strings/ash_strings_fil.xtb
index 9b3b25480..76de7fb6 100644
--- a/ash/strings/ash_strings_fil.xtb
+++ b/ash/strings/ash_strings_fil.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">Naka-mute ang volume.</translation>
 <translation id="1467432559032391204">Kaliwa</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">Naka-on ang Huwag istorbohin.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{Ipakita ang mga setting ng notification. Naka-off ang mga notification para sa isang app}one{Ipakita ang mga setting ng notification. Naka-off ang mga notification para sa # app}other{Ipakita ang mga setting ng notification. Naka-off ang mga notification para sa # na app}}</translation>
 <translation id="1525508553941733066">I-DISMISS</translation>
 <translation id="1537254971476575106">Fullscreen magnifier</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">Ihinto ang pag-cast sa isang hindi pa natutukoy na tagatanggap</translation>
 <translation id="4628757576491864469">Mga Device</translation>
 <translation id="4659419629803378708">Na-enable ang ChromeVox</translation>
+<translation id="4665114317261903604">I-toggle ang Huwag istorbohin. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">I-unlock ang device gamit ang parent code</translation>
 <translation id="4731797938093519117">Pangunahing access</translation>
 <translation id="4734965478015604180">Horizontal</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">Naka-lock sa horizontal</translation>
 <translation id="6259254695169772643">Gamitin ang iyong stylus para pumili</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: Ina-activate...</translation>
+<translation id="6283712521836204486">Naka-off ang Huwag istorbohin.</translation>
 <translation id="6284232397434400372">Binago ang resolution</translation>
 <translation id="6297287540776456956">Gamitin ang stylus upang pumili ng rehiyon</translation>
 <translation id="6310121235600822547">Na-rotate ang <ph name="DISPLAY_NAME" /> sa <ph name="ROTATION" /></translation>
diff --git a/ash/strings/ash_strings_hi.xtb b/ash/strings/ash_strings_hi.xtb
index 226d48c..eec5112 100644
--- a/ash/strings/ash_strings_hi.xtb
+++ b/ash/strings/ash_strings_hi.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">आवाज़ को म्यूट किया गया है.</translation>
 <translation id="1467432559032391204">बाएं</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">'परेशान न करें' मोड चालू है.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{सूचना सेटिंग दिखाएं. किसी एक ऐप्लिकेशन के लिए सूचनाएं बंद हैं}one{सूचना सेटिंग दिखाएं. # ऐप्लिकेशन के लिए सूचनाएं बंद हैं}other{सूचना सेटिंग दिखाएं. # ऐप्लिकेशन के लिए सूचनाएं बंद हैं}}</translation>
 <translation id="1525508553941733066">ख़ारिज करें</translation>
 <translation id="1537254971476575106">फ़ुलस्क्रीन पर सामग्री को बड़ा दिखाने की सुविधा</translation>
@@ -256,6 +257,7 @@
 <translation id="4585337515783392668">ऐसे रिसीवर पर कास्ट करना बंद करें जिसकी जानकारी नहीं है</translation>
 <translation id="4628757576491864469">डिवाइस</translation>
 <translation id="4659419629803378708">ChromeVox सक्षम है</translation>
+<translation id="4665114317261903604">'परेशान न करें' को टॉगल करें. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">माता-पिता के कोड से डिवाइस अनलॉक करें</translation>
 <translation id="4731797938093519117">अभिभावक ऐक्सेस</translation>
 <translation id="4734965478015604180">क्षैतिज</translation>
@@ -354,6 +356,7 @@
 <translation id="6254629735336163724">क्षैतिज पर लॉक किया गया</translation>
 <translation id="6259254695169772643">चुनने के लिए अपने स्टाइलस का इस्तेमाल करें</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: सक्रिय हो रहा है...</translation>
+<translation id="6283712521836204486">'परेशान न करें' बंद है.</translation>
 <translation id="6284232397434400372">रिज़ॉल्यूशन बदला गया</translation>
 <translation id="6297287540776456956">कोई क्षेत्र चुनने के लिए स्टाइलस का उपयोग करें</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> को <ph name="ROTATION" /> पर घुमाया गया</translation>
diff --git a/ash/strings/ash_strings_iw.xtb b/ash/strings/ash_strings_iw.xtb
index b8c2415..bb2b5ea 100644
--- a/ash/strings/ash_strings_iw.xtb
+++ b/ash/strings/ash_strings_iw.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">צלילים מושתקים.</translation>
 <translation id="1467432559032391204">שמאלה</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">מצב 'נא לא להפריע' מופעל.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{צפייה בהגדרות של הודעות. ההודעות מושבתות באפליקציה אחת}two{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}many{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}other{צפייה בהגדרות של הודעות. ההודעות מושבתות ב-# אפליקציות}}</translation>
 <translation id="1525508553941733066">סגור</translation>
 <translation id="1537254971476575106">מגדיל למסך מלא</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">הפסקת העברה במכשיר לא מוכר</translation>
 <translation id="4628757576491864469">מכשירים</translation>
 <translation id="4659419629803378708">‏ChromeVox הופעל</translation>
+<translation id="4665114317261903604">החלפת מצב 'נא לא להפריע'. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">ביטול נעילת המכשיר באמצעות קוד הורה</translation>
 <translation id="4731797938093519117">גישת הורים</translation>
 <translation id="4734965478015604180">אופקי</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">נעול במצב אופקי</translation>
 <translation id="6259254695169772643">כדי לבחור יש להשתמש בסטיילוס</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: מפעיל...</translation>
+<translation id="6283712521836204486">מצב 'נא לא להפריע' מושבת.</translation>
 <translation id="6284232397434400372">הרזולוציה השתנתה</translation>
 <translation id="6297287540776456956">בחר אזור באמצעות הסטיילוס</translation>
 <translation id="6310121235600822547">בוצע סיבוב של <ph name="DISPLAY_NAME" /> אל <ph name="ROTATION" /></translation>
diff --git a/ash/strings/ash_strings_kn.xtb b/ash/strings/ash_strings_kn.xtb
index 884e71f..67302e1 100644
--- a/ash/strings/ash_strings_kn.xtb
+++ b/ash/strings/ash_strings_kn.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">ವಾಲ್ಯೂಮ್ ಅನ್ನು ಮ್ಯೂಟ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="1467432559032391204">ಎಡಕ್ಕೆ</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">"ಅಡಚಣೆ ಮಾಡಬೇಡ" ಆನ್ ಆಗಿದೆ.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ. ಒಂದು ಅಪ್ಲಿಕೇಶನ್‌ಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}one{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ. # ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}other{ಅಧಿಸೂಚನೆ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ತೋರಿಸಿ. # ಅಪ್ಲಿಕೇಶನ್‌ಗಳಿಗಾಗಿ ಅಧಿಸೂಚನೆಗಳನ್ನು ಆಫ್ ಮಾಡಲಾಗಿದೆ}}</translation>
 <translation id="1525508553941733066">ವಜಾಗೊಳಿಸಿ</translation>
 <translation id="1537254971476575106">ಪೂರ್ಣಪರದೆ ವರ್ಧಕ</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">"ಅಪರಿಚಿತ ಸ್ವೀಕರಿಸುವವರು" ನಲ್ಲಿ ಬಿತ್ತರಿಸುವುದನ್ನು ನಿಲ್ಲಿಸಿ</translation>
 <translation id="4628757576491864469">ಸಾಧನಗಳು</translation>
 <translation id="4659419629803378708">ChromeVox ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
+<translation id="4665114317261903604">"ಅಡಚಣೆ ಮಾಡಬೇಡ" ಸ್ಥಿತಿಯನ್ನು ಟಾಗಲ್ ಮಾಡಿ. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">ಪೋಷಕ ಕೋಡ್ ಬಳಸಿಕೊಂಡು ಸಾಧನವನ್ನು ಅನ್‌ಲಾಕ್ ಮಾಡಿ</translation>
 <translation id="4731797938093519117">ಪೋಷಕ ಪ್ರವೇಶ ಬಟನ್‌</translation>
 <translation id="4734965478015604180">ಅಡ್ಡ</translation>
@@ -354,6 +356,7 @@
 <translation id="6254629735336163724">ಪರದೆಯು ಅಡ್ಡಲಾಗಿ ತೋರುವಂತೆ ಲಾಕ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="6259254695169772643">ಆಯ್ಕೆ ಮಾಡಲು ನಿಮ್ಮ ಸ್ಟೈಲಸ್ ಅನ್ನು ಬಳಸಿ</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: ಸಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತಿದೆ...</translation>
+<translation id="6283712521836204486">"ಅಡಚಣೆ ಮಾಡಬೇಡ" ಆಫ್ ಆಗಿದೆ.</translation>
 <translation id="6284232397434400372">ರೆಸಲ್ಯೂಷನ್ ಬದಲಾಗಿದೆ</translation>
 <translation id="6297287540776456956">ಪ್ರದೇಶವನ್ನು ಆಯ್ಕೆಮಾಡಲು ಸ್ಟೈಲಸ್ ಬಳಸಿ</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> ಅನ್ನು <ph name="ROTATION" /> ಗೆ ತಿರುಗಿಸಲಾಗಿದೆ</translation>
diff --git a/ash/strings/ash_strings_ta.xtb b/ash/strings/ash_strings_ta.xtb
index bb90d70..efd5fe1 100644
--- a/ash/strings/ash_strings_ta.xtb
+++ b/ash/strings/ash_strings_ta.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">ஒலி முடக்கப்பட்டுள்ளது.</translation>
 <translation id="1467432559032391204">இடது</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">'தொந்தரவு செய்ய வேண்டாம்' ஆன் செய்யப்பட்டுள்ளது.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{அறிவிப்பு அமைப்புகளைக் காண்பிக்கும். ஒரு ஆப்ஸுக்கு அறிவிப்புகள் முடக்கப்பட்டுள்ளன}other{அறிவிப்பு அமைப்புகளைக் காண்பிக்கும். # ஆப்ஸுக்கு அறிவிப்புகள் முடக்கப்பட்டுள்ளன}}</translation>
 <translation id="1525508553941733066">நிராகரி</translation>
 <translation id="1537254971476575106">முழுத்திரைப் பெரிதாக்கி</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">தெரியாத ரிசீவருக்கு அனுப்புவதை நிறுத்து</translation>
 <translation id="4628757576491864469">சாதனங்கள்</translation>
 <translation id="4659419629803378708">ChromeVox இயக்கப்பட்டது</translation>
+<translation id="4665114317261903604">'தொந்தரவு செய்ய வேண்டாம்' அம்சத்தை ஆன்/ஆஃப் செய்யும். <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">பெற்றோர் குறியீட்டின் மூலம் சாதனத்தை திறத்தல்</translation>
 <translation id="4731797938093519117">பெற்றோர் அணுகல்</translation>
 <translation id="4734965478015604180">கிடைமட்டம்</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">கிடைமட்ட நிலையில் பூட்டப்பட்டது</translation>
 <translation id="6259254695169772643">தேர்ந்தெடுக்க, ஸ்டைலஸைப் பயன்படுத்தலாம்</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: செயல்படுத்துகிறது...</translation>
+<translation id="6283712521836204486">'தொந்தரவு செய்ய வேண்டாம்' ஆஃப் செய்யப்பட்டுள்ளது.</translation>
 <translation id="6284232397434400372">தெளிவு மாற்றப்பட்டது</translation>
 <translation id="6297287540776456956">பகுதியைத் தேர்ந்தெடுக்க, ஸ்டைஸைப் பயன்படுத்தவும்</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> <ph name="ROTATION" /> ஆகச் சுழற்றப்பட்டது</translation>
diff --git a/ash/strings/ash_strings_vi.xtb b/ash/strings/ash_strings_vi.xtb
index 9e2ba36..af77aff 100644
--- a/ash/strings/ash_strings_vi.xtb
+++ b/ash/strings/ash_strings_vi.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">Đang tắt tiếng.</translation>
 <translation id="1467432559032391204">Trái</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">Chế độ Không làm phiền đang bật.</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{Hiển thị tùy chọn cài đặt thông báo. Các thông báo hiện đang tắt cho một ứng dụng}other{Hiển thị tùy chọn cài đặt thông báo. Các thông báo hiện đang tắt cho # ứng dụng}}</translation>
 <translation id="1525508553941733066">LOẠI BỎ</translation>
 <translation id="1537254971476575106">Phóng to toàn bộ màn hình</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">Dừng truyền trên bộ thu không xác định</translation>
 <translation id="4628757576491864469">Thiết bị</translation>
 <translation id="4659419629803378708">Đã bật ChromeVox</translation>
+<translation id="4665114317261903604">Bật/tắt chế độ Không làm phiền. <ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">Mở khóa thiết bị bằng mã dành cho cha mẹ</translation>
 <translation id="4731797938093519117">Quyền truy cập của cha mẹ</translation>
 <translation id="4734965478015604180">Ngang</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">Đã khóa theo chiều ngang</translation>
 <translation id="6259254695169772643">Sử dụng bút cảm ứng để chọn</translation>
 <translation id="6267036997247669271"><ph name="NAME" />: Đang kích hoạt...</translation>
+<translation id="6283712521836204486">Chế độ Không làm phiền đang tắt.</translation>
 <translation id="6284232397434400372">Đã thay đổi độ phân giải</translation>
 <translation id="6297287540776456956">Sử dụng bút cảm ứng để chọn một vùng</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> đã được xoay vòng sang <ph name="ROTATION" /></translation>
diff --git a/ash/strings/ash_strings_zh-CN.xtb b/ash/strings/ash_strings_zh-CN.xtb
index f2af0449..3d2f15f2 100644
--- a/ash/strings/ash_strings_zh-CN.xtb
+++ b/ash/strings/ash_strings_zh-CN.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">当前处于静音状态。</translation>
 <translation id="1467432559032391204">向左</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">“勿扰”模式已开启。</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{显示通知设置。针对 1 个应用关闭通知}other{显示通知设置。针对 # 个应用关闭通知}}</translation>
 <translation id="1525508553941733066">关闭</translation>
 <translation id="1537254971476575106">全屏放大镜</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">停止投射至不明接收器</translation>
 <translation id="4628757576491864469">设备</translation>
 <translation id="4659419629803378708">已启用 ChromeVox</translation>
+<translation id="4665114317261903604">开启/关闭“勿扰”模式。<ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">使用家长访问代码解锁设备</translation>
 <translation id="4731797938093519117">家长访问</translation>
 <translation id="4734965478015604180">横向</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">已锁定为横向</translation>
 <translation id="6259254695169772643">请使用您的触控笔进行选择</translation>
 <translation id="6267036997247669271"><ph name="NAME" />:正在激活…</translation>
+<translation id="6283712521836204486">“勿扰”模式已关闭。</translation>
 <translation id="6284232397434400372">分辨率已更改</translation>
 <translation id="6297287540776456956">使用触控笔选择一个区域</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" />已旋转为<ph name="ROTATION" /></translation>
diff --git a/ash/strings/ash_strings_zh-TW.xtb b/ash/strings/ash_strings_zh-TW.xtb
index 2a63f9f..d7f1823 100644
--- a/ash/strings/ash_strings_zh-TW.xtb
+++ b/ash/strings/ash_strings_zh-TW.xtb
@@ -41,6 +41,7 @@
 <translation id="1460620680449458626">音量已設為靜音。</translation>
 <translation id="1467432559032391204">向左</translation>
 <translation id="1484102317210609525"><ph name="DEVICE_NAME" /> (HDMI/DP)</translation>
+<translation id="1516740043221086139">零打擾模式已開啟。</translation>
 <translation id="1520303207432623762">{NUM_APPS,plural, =1{顯示通知設定。已關閉一個應用程式的通知}other{顯示通知設定。已關閉 # 個應用程式的通知}}</translation>
 <translation id="1525508553941733066">關閉</translation>
 <translation id="1537254971476575106">全螢幕放大鏡</translation>
@@ -255,6 +256,7 @@
 <translation id="4585337515783392668">停止透過不明接收器投放</translation>
 <translation id="4628757576491864469">裝置</translation>
 <translation id="4659419629803378708">ChromeVox 已啟用</translation>
+<translation id="4665114317261903604">切換零打擾模式。<ph name="STATE_TEXT" /></translation>
 <translation id="4696813013609194136">使用家長存取碼將裝置解鎖</translation>
 <translation id="4731797938093519117">家長存取</translation>
 <translation id="4734965478015604180">橫向</translation>
@@ -353,6 +355,7 @@
 <translation id="6254629735336163724">已鎖定為水平畫面</translation>
 <translation id="6259254695169772643">請使用觸控筆選取</translation>
 <translation id="6267036997247669271"><ph name="NAME" />:正在啟用...</translation>
+<translation id="6283712521836204486">零打擾模式已關閉。</translation>
 <translation id="6284232397434400372">解析度已變更</translation>
 <translation id="6297287540776456956">使用觸控筆選取擷取範圍</translation>
 <translation id="6310121235600822547"><ph name="DISPLAY_NAME" /> 已旋轉到<ph name="ROTATION" /></translation>
diff --git a/ash/system/tray/tray_background_view.cc b/ash/system/tray/tray_background_view.cc
index 4707c6d..3cd103b2 100644
--- a/ash/system/tray/tray_background_view.cc
+++ b/ash/system/tray/tray_background_view.cc
@@ -129,8 +129,14 @@
     cc::PaintFlags background_flags;
     background_flags.setAntiAlias(true);
     int border_radius = kTrayRoundedBorderRadius;
+    const bool tablet_mode =
+        Shell::Get()->tablet_mode_controller() &&
+        Shell::Get()->tablet_mode_controller()->InTabletMode();
     background_flags.setColor(
-        ShelfConfig::Get()->shelf_control_permanent_highlight_background());
+        tablet_mode && ShelfConfig::Get()->is_in_app()
+            ? SK_ColorTRANSPARENT
+            : ShelfConfig::Get()
+                  ->shelf_control_permanent_highlight_background());
     border_radius = ShelfConfig::Get()->control_border_radius();
 
     gfx::Rect bounds = tray_background_view_->GetBackgroundBounds();
diff --git a/ash/wm/overview/overview_grid.cc b/ash/wm/overview/overview_grid.cc
index f1a274c..a8eaff09 100644
--- a/ash/wm/overview/overview_grid.cc
+++ b/ash/wm/overview/overview_grid.cc
@@ -8,6 +8,7 @@
 #include <functional>
 #include <utility>
 
+#include "ash/display/screen_orientation_controller.h"
 #include "ash/metrics/histogram_macros.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/public/cpp/fps_counter.h"
@@ -1186,14 +1187,25 @@
     int new_y,
     float opacity,
     OverviewSession::UpdateAnimationSettingsCallback callback) {
-  DCHECK(!window_list_.empty());
-  // Translate the window items to |new_y| with the opacity. Observe the
-  // animation of the first window.
   std::unique_ptr<ui::ScopedLayerAnimationSettings> settings_to_observe;
+  if (desks_widget_) {
+    aura::Window* window = desks_widget_->GetNativeWindow();
+    ui::Layer* layer = window->layer();
+    if (!callback.is_null()) {
+      settings_to_observe = std::make_unique<ui::ScopedLayerAnimationSettings>(
+          layer->GetAnimator());
+      callback.Run(settings_to_observe.get());
+    }
+    window->SetTransform(gfx::Transform(1.f, 0.f, 0.f, 1.f, 0.f, -new_y));
+    layer->SetOpacity(opacity);
+  }
+
+  // Translate the window items to |new_y| with the opacity. Observe the
+  // animation of the last item, if any.
   for (const auto& window_item : window_list_) {
     auto new_settings =
         window_item->UpdateYPositionAndOpacity(new_y, opacity, callback);
-    if (!settings_to_observe && new_settings)
+    if (new_settings)
       settings_to_observe = std::move(new_settings);
   }
   return settings_to_observe;
diff --git a/ash/wm/overview/overview_grid.h b/ash/wm/overview/overview_grid.h
index 0494690..65da1904 100644
--- a/ash/wm/overview/overview_grid.h
+++ b/ash/wm/overview/overview_grid.h
@@ -227,6 +227,7 @@
   // transformation and opacity change should be animated. The animation
   // settings will be set by the caller via |callback|. Returns the settings of
   // the first window we are animating; the caller will observe this animation.
+  // The returned object may be nullptr.
   std::unique_ptr<ui::ScopedLayerAnimationSettings> UpdateYPositionAndOpacity(
       int new_y,
       float opacity,
diff --git a/ash/wm/overview/overview_item.cc b/ash/wm/overview/overview_item.cc
index 8fb4db79..4b34fe8 100644
--- a/ash/wm/overview/overview_item.cc
+++ b/ash/wm/overview/overview_item.cc
@@ -315,12 +315,10 @@
     // Alter the y-translation. Offset by the window location relative to the
     // grid.
     gfx::Transform transform = layer->transform();
-    transform.matrix().setFloat(1, 3,
-                                static_cast<float>(initial_y - new_grid_y));
+    transform.matrix().setFloat(1, 3, initial_y - new_grid_y);
     layer->SetTransform(transform);
 
-    // Return the first layer for the caller to observe.
-    if (!settings_to_observe)
+    if (settings)
       settings_to_observe = std::move(settings);
   }
 
diff --git a/ash/wm/overview/overview_session.cc b/ash/wm/overview/overview_session.cc
index f5ce6e5..c4379aa 100644
--- a/ash/wm/overview/overview_session.cc
+++ b/ash/wm/overview/overview_session.cc
@@ -617,23 +617,25 @@
   if (!grid)
     return nullptr;
 
+  std::unique_ptr<ui::ScopedLayerAnimationSettings> settings =
+      grid->UpdateYPositionAndOpacity(new_y, opacity, callback);
   if (no_windows_widget_) {
-    // Translate and fade |no_windows_widget_| if it is visible.
     DCHECK(grid->empty());
+
+    // Translate and fade |no_windows_widget_| if it is visible. Overwrite
+    // |settings| to observe |no_windows_widget| if necessary.
     aura::Window* window = no_windows_widget_->GetNativeWindow();
-    std::unique_ptr<ui::ScopedLayerAnimationSettings> settings;
+    ui::Layer* layer = window->layer();
     if (!callback.is_null()) {
       settings = std::make_unique<ui::ScopedLayerAnimationSettings>(
-          window->layer()->GetAnimator());
+          layer->GetAnimator());
       callback.Run(settings.get());
     }
-    window->SetTransform(
-        gfx::Transform(1.f, 0.f, 0.f, 1.f, 0.f, static_cast<float>(-new_y)));
-    window->layer()->SetOpacity(opacity);
-    return settings;
+    window->SetTransform(gfx::Transform(1.f, 0.f, 0.f, 1.f, 0.f, -new_y));
+    layer->SetOpacity(opacity);
   }
 
-  return grid->UpdateYPositionAndOpacity(new_y, opacity, callback);
+  return settings;
 }
 
 void OverviewSession::UpdateRoundedCornersAndShadow() {
diff --git a/ash/wm/overview/overview_window_drag_controller_unittest.cc b/ash/wm/overview/overview_window_drag_controller_unittest.cc
index bbf0b86..ed13934 100644
--- a/ash/wm/overview/overview_window_drag_controller_unittest.cc
+++ b/ash/wm/overview/overview_window_drag_controller_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "ash/wm/overview/overview_window_drag_controller.h"
 
+#include "ash/display/screen_orientation_controller.h"
 #include "ash/display/screen_orientation_controller_test_api.h"
 #include "ash/public/cpp/ash_features.h"
 #include "ash/shell.h"
diff --git a/ash/wm/splitview/split_view_controller.cc b/ash/wm/splitview/split_view_controller.cc
index 1a10632..d172aa18 100644
--- a/ash/wm/splitview/split_view_controller.cc
+++ b/ash/wm/splitview/split_view_controller.cc
@@ -517,10 +517,8 @@
   // desired bound is smaller than the minimum bounds of the window.
   AdjustSnappedWindowBounds(&left_or_top_rect, &right_or_bottom_rect);
 
-  if (IsCurrentScreenOrientationPrimary())
-    return (snap_position == LEFT) ? left_or_top_rect : right_or_bottom_rect;
-  else
-    return (snap_position == LEFT) ? right_or_bottom_rect : left_or_top_rect;
+  return IsPhysicalLeftOrTop(snap_position) ? left_or_top_rect
+                                            : right_or_bottom_rect;
 }
 
 gfx::Rect SplitViewController::GetSnappedWindowBoundsInScreenUnadjusted(
@@ -536,27 +534,21 @@
   GetSnappedWindowBoundsInScreenInternal(window, &left_or_top_rect,
                                          &right_or_bottom_rect);
 
-  if (IsCurrentScreenOrientationPrimary())
-    return (snap_position == LEFT) ? left_or_top_rect : right_or_bottom_rect;
-  else
-    return (snap_position == LEFT) ? right_or_bottom_rect : left_or_top_rect;
+  return IsPhysicalLeftOrTop(snap_position) ? left_or_top_rect
+                                            : right_or_bottom_rect;
 }
 
 int SplitViewController::GetDefaultDividerPosition(aura::Window* window) const {
   const gfx::Rect work_area_bounds_in_screen =
       screen_util::GetDisplayWorkAreaBoundsInScreenForActiveDeskContainer(
           window);
-  gfx::Size divider_size;
-  // In clamshell mode, there is no divider bar, thus divider_size is empty.
-  if (split_view_type_ == SplitViewType::kTabletType) {
-    divider_size = SplitViewDivider::GetDividerSize(
-        work_area_bounds_in_screen, GetCurrentScreenOrientation(),
-        false /* is_dragging */);
-  }
-  if (IsCurrentScreenOrientationLandscape())
-    return (work_area_bounds_in_screen.width() - divider_size.width()) * 0.5f;
-  else
-    return (work_area_bounds_in_screen.height() - divider_size.height()) * 0.5f;
+  int default_divider_position = (IsCurrentScreenOrientationLandscape()
+                                      ? work_area_bounds_in_screen.width()
+                                      : work_area_bounds_in_screen.height()) /
+                                 2;
+  if (split_view_type_ == SplitViewType::kTabletType)
+    default_divider_position -= kSplitviewDividerShortSideLength / 2;
+  return default_divider_position;
 }
 
 bool SplitViewController::IsDividerAnimating() const {
@@ -703,7 +695,7 @@
   black_scrim_layer_.reset();
   default_snap_position_ = NONE;
   divider_position_ = -1;
-  divider_closest_ratio_ = 0.f;
+  divider_closest_ratio_ = std::numeric_limits<float>::quiet_NaN();
   snapping_window_transformed_bounds_map_.clear();
 
   UpdateSplitViewStateAndNotifyObservers();
@@ -806,16 +798,12 @@
   const gfx::Rect work_area =
       screen_util::GetDisplayWorkAreaBoundsInScreenForActiveDeskContainer(
           window);
-  const bool is_left_or_top_window =
-      IsCurrentScreenOrientationPrimary()
-          ? (window == left_window_ ? true : false)
-          : (window == left_window_ ? false : true);
   if (IsCurrentScreenOrientationLandscape()) {
-    divider_position_ = is_left_or_top_window
+    divider_position_ = window == GetPhysicalLeftOrTopWindow()
                             ? new_bounds.width()
                             : work_area.width() - new_bounds.width();
   } else {
-    divider_position_ = is_left_or_top_window
+    divider_position_ = window == GetPhysicalLeftOrTopWindow()
                             ? new_bounds.height()
                             : work_area.height() - new_bounds.height();
   }
@@ -1070,11 +1058,11 @@
   if (!display.IsInternal())
     return;
 
-  // We need update |previous_screen_orientation_| even though split view mode
-  // is not active at the moment.
-  OrientationLockType previous_screen_orientation =
-      previous_screen_orientation_;
-  previous_screen_orientation_ = GetCurrentScreenOrientation();
+  // We need to update |is_previous_screen_orientation_primary_| even if split
+  // view mode is not active.
+  const bool is_previous_screen_orientation_primary =
+      is_previous_screen_orientation_primary_;
+  is_previous_screen_orientation_primary_ = IsCurrentScreenOrientationPrimary();
 
   if (!InSplitViewMode())
     return;
@@ -1106,22 +1094,18 @@
 
   if ((metrics & display::DisplayObserver::DISPLAY_METRIC_ROTATION) ||
       (metrics & display::DisplayObserver::DISPLAY_METRIC_WORK_AREA)) {
-    const gfx::Size divider_size = SplitViewDivider::GetDividerSize(
-        display.work_area(), GetCurrentScreenOrientation(), false);
-    const int divider_thickness =
-        std::min(divider_size.width(), divider_size.height());
     // Set default |divider_closest_ratio_| to kFixedPositionRatios[1].
-    if (!divider_closest_ratio_)
+    if (std::isnan(divider_closest_ratio_))
       divider_closest_ratio_ = kFixedPositionRatios[1];
 
     // Reverse the position ratio if top/left window changes.
-    if (IsPrimaryOrientation(previous_screen_orientation) !=
+    if (is_previous_screen_orientation_primary !=
         IsCurrentScreenOrientationPrimary()) {
       divider_closest_ratio_ = 1.f - divider_closest_ratio_;
     }
     divider_position_ =
-        std::floor(divider_closest_ratio_ * GetDividerEndPosition()) -
-        std::floor(divider_thickness / 2.f);
+        static_cast<int>(divider_closest_ratio_ * GetDividerEndPosition()) -
+        kSplitviewDividerShortSideLength / 2;
   }
 
   // For other display configuration changes, we only move the divider to the
@@ -1188,6 +1172,14 @@
   Shell::Get()->accessibility_controller()->RemoveObserver(this);
 }
 
+aura::Window* SplitViewController::GetPhysicalLeftOrTopWindow() {
+  return IsCurrentScreenOrientationPrimary() ? left_window_ : right_window_;
+}
+
+aura::Window* SplitViewController::GetPhysicalRightOrBottomWindow() {
+  return IsCurrentScreenOrientationPrimary() ? right_window_ : left_window_;
+}
+
 void SplitViewController::StartObserving(aura::Window* window) {
   if (window && !window->HasObserver(this)) {
     Shell::Get()->shadow_controller()->UpdateShadowForWindow(window);
@@ -1391,7 +1383,7 @@
   gfx::Rect divider_bounds;
   if (split_view_type_ == SplitViewType::kTabletType) {
     divider_bounds = SplitViewDivider::GetDividerBoundsInScreen(
-        work_area_bounds_in_screen, GetCurrentScreenOrientation(),
+        work_area_bounds_in_screen, IsCurrentScreenOrientationLandscape(),
         divider_position, false /* is_dragging */);
   } else {
     if (IsCurrentScreenOrientationLandscape())
@@ -1433,15 +1425,6 @@
 int SplitViewController::GetClosestFixedDividerPosition() {
   DCHECK(InSplitViewMode());
 
-  const gfx::Rect work_area_bounds_in_screen =
-      screen_util::GetDisplayWorkAreaBoundsInScreenForActiveDeskContainer(
-          GetDefaultSnappedWindow());
-  const gfx::Size divider_size = SplitViewDivider::GetDividerSize(
-      work_area_bounds_in_screen, GetCurrentScreenOrientation(),
-      false /* is_dragging */);
-  const int divider_thickness =
-      std::min(divider_size.width(), divider_size.height());
-
   // The values in |kFixedPositionRatios| represent the fixed position of the
   // center of the divider while |divider_position_| represent the origin of the
   // divider rectangle. So, before calling FindClosestFixedPositionRatio,
@@ -1450,11 +1433,11 @@
   // the endpoints.
   int divider_end_position = GetDividerEndPosition();
   divider_closest_ratio_ = FindClosestPositionRatio(
-      divider_position_ + std::floor(divider_thickness / 2.f),
+      divider_position_ + kSplitviewDividerShortSideLength / 2,
       divider_end_position);
-  int fix_position = std::floor(divider_end_position * divider_closest_ratio_);
+  int fix_position = divider_end_position * divider_closest_ratio_;
   if (divider_closest_ratio_ > 0.f && divider_closest_ratio_ < 1.f)
-    fix_position -= std::floor(divider_thickness / 2.f);
+    fix_position -= kSplitviewDividerShortSideLength / 2;
   return fix_position;
 }
 
@@ -1561,16 +1544,11 @@
 void SplitViewController::AdjustSnappedWindowBounds(
     gfx::Rect* left_or_top_rect,
     gfx::Rect* right_or_bottom_rect) {
-  aura::Window* left_or_top_window =
-      IsCurrentScreenOrientationPrimary() ? left_window_ : right_window_;
-  aura::Window* right_or_bottom_window =
-      IsCurrentScreenOrientationPrimary() ? right_window_ : left_window_;
-
   const bool is_landscape = IsCurrentScreenOrientationLandscape();
   const int left_minimum_width =
-      GetMinimumWindowSize(left_or_top_window, is_landscape);
+      GetMinimumWindowSize(GetPhysicalLeftOrTopWindow(), is_landscape);
   const int right_minimum_width =
-      GetMinimumWindowSize(right_or_bottom_window, is_landscape);
+      GetMinimumWindowSize(GetPhysicalRightOrBottomWindow(), is_landscape);
 
   if (!is_landscape) {
     left_or_top_rect->Transpose();
diff --git a/ash/wm/splitview/split_view_controller.h b/ash/wm/splitview/split_view_controller.h
index 2b86534..569359c 100644
--- a/ash/wm/splitview/split_view_controller.h
+++ b/ash/wm/splitview/split_view_controller.h
@@ -5,11 +5,11 @@
 #ifndef ASH_WM_SPLITSVIEW_SPLIT_VIEW_CONTROLLER_H_
 #define ASH_WM_SPLITSVIEW_SPLIT_VIEW_CONTROLLER_H_
 
+#include <limits>
 #include <memory>
 
 #include "ash/accessibility/accessibility_observer.h"
 #include "ash/ash_export.h"
-#include "ash/display/screen_orientation_controller.h"
 #include "ash/public/cpp/split_view.h"
 #include "ash/public/cpp/tablet_mode_observer.h"
 #include "ash/shell_observer.h"
@@ -229,6 +229,11 @@
   class TabDraggedWindowObserver;
   class DividerSnapAnimation;
 
+  // These functions return |left_window_| and |right_window_|, swapped in
+  // nonprimary screen orientations. Note that they may return null.
+  aura::Window* GetPhysicalLeftOrTopWindow();
+  aura::Window* GetPhysicalRightOrBottomWindow();
+
   // Start observing |window|.
   void StartObserving(aura::Window* window);
   // Stop observing the window at associated with |snap_position|. Also updates
@@ -426,7 +431,7 @@
   // kOneThirdPositionRatio and kTwoThirdPositionRatio based on current
   // |divider_position_|. Used to update |divider_position_| on work area
   // changes.
-  float divider_closest_ratio_ = 0.f;
+  float divider_closest_ratio_ = std::numeric_limits<float>::quiet_NaN();
 
   // The location of the previous mouse/gesture event in screen coordinates.
   gfx::Point previous_event_location_;
@@ -443,8 +448,8 @@
   // versa.
   SnapPosition default_snap_position_ = NONE;
 
-  // The previous orientation of the screen.
-  OrientationLockType previous_screen_orientation_ = OrientationLockType::kAny;
+  // Whether the previous screen orientation is a primary orientation.
+  bool is_previous_screen_orientation_primary_ = true;
 
   // True when the divider is being dragged (not during its snap animation).
   bool is_resizing_ = false;
diff --git a/ash/wm/splitview/split_view_controller_unittest.cc b/ash/wm/splitview/split_view_controller_unittest.cc
index 98131e8..5f835d8 100644
--- a/ash/wm/splitview/split_view_controller_unittest.cc
+++ b/ash/wm/splitview/split_view_controller_unittest.cc
@@ -863,10 +863,58 @@
 }
 
 // Test that if the internal screen display configuration changes during the
-// divider snap animation, and if the adjusted divider bounds place it at an
-// edge of the screen, then split view ends.
+// divider snap animation, and if the adjusted divider bounds place it at the
+// left edge of the screen, then split view ends.
 TEST_F(SplitViewControllerTest,
-       InternalDisplayConfigurationChangeDuringDividerSnapToEndSplitView) {
+       InternalDisplayConfigurationChangeDuringDividerSnapToLeft) {
+  UpdateDisplay("407x400");
+  int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
+  display::DisplayManager* display_manager = Shell::Get()->display_manager();
+  display::test::ScopedSetInternalDisplayId set_internal(display_manager,
+                                                         display_id);
+
+  const gfx::Rect bounds(0, 0, 200, 200);
+  std::unique_ptr<aura::Window> window1(CreateWindow(bounds));
+  std::unique_ptr<aura::Window> window2(CreateWindow(bounds));
+
+  split_view_controller()->SnapWindow(window1.get(), SplitViewController::LEFT);
+  split_view_controller()->SnapWindow(window2.get(),
+                                      SplitViewController::RIGHT);
+
+  const gfx::Rect bounds_window1 = window1->GetBoundsInScreen();
+  const gfx::Rect bounds_window2 = window2->GetBoundsInScreen();
+  const gfx::Rect bounds_divider =
+      split_view_divider()->GetDividerBoundsInScreen(false /* is_dragging */);
+
+  // Test that |window1| and |window2| has the same width and height after snap.
+  EXPECT_NEAR(bounds_window1.width(), bounds_window2.width(), 1);
+  EXPECT_EQ(bounds_window1.height(), bounds_window2.height());
+  EXPECT_EQ(bounds_divider.height(), bounds_window1.height());
+
+  // Test that |window1|, divider, |window2| are aligned properly.
+  EXPECT_EQ(bounds_divider.x(), bounds_window1.x() + bounds_window1.width());
+  EXPECT_EQ(bounds_window2.x(), bounds_divider.x() + bounds_divider.width());
+
+  // Drag the divider to end split view pending the snap animation.
+  const gfx::Point divider_center =
+      split_view_divider()
+          ->GetDividerBoundsInScreen(false /* is_dragging */)
+          .CenterPoint();
+  GetEventGenerator()->set_current_screen_location(divider_center);
+  GetEventGenerator()->DragMouseBy(20 - bounds_window1.width(), 0);
+  ASSERT_TRUE(split_view_controller()->InSplitViewMode());
+  ASSERT_TRUE(IsDividerAnimating());
+
+  // Change the display configuration and check that split view ends.
+  UpdateDisplay("507x500");
+  EXPECT_FALSE(split_view_controller()->InSplitViewMode());
+}
+
+// Test that if the internal screen display configuration changes during the
+// divider snap animation, and if the adjusted divider bounds place it at the
+// right edge of the screen, then split view ends.
+TEST_F(SplitViewControllerTest,
+       InternalDisplayConfigurationChangeDuringDividerSnapToRight) {
   UpdateDisplay("407x400");
   int64_t display_id = display::Screen::GetScreen()->GetPrimaryDisplay().id();
   display::DisplayManager* display_manager = Shell::Get()->display_manager();
diff --git a/ash/wm/splitview/split_view_divider.cc b/ash/wm/splitview/split_view_divider.cc
index a1e7237..0d96a2f2 100644
--- a/ash/wm/splitview/split_view_divider.cc
+++ b/ash/wm/splitview/split_view_divider.cc
@@ -253,60 +253,36 @@
 }
 
 // static
-gfx::Size SplitViewDivider::GetDividerSize(
-    const gfx::Rect& work_area_bounds,
-    OrientationLockType screen_orientation,
-    bool is_dragging) {
-  if (IsLandscapeOrientation(screen_orientation)) {
-    return is_dragging ? gfx::Size(kSplitviewDividerEnlargedShortSideLength,
-                                   work_area_bounds.height())
-                       : gfx::Size(kSplitviewDividerShortSideLength,
-                                   work_area_bounds.height());
-  } else {
-    return is_dragging ? gfx::Size(work_area_bounds.width(),
-                                   kSplitviewDividerEnlargedShortSideLength)
-                       : gfx::Size(work_area_bounds.width(),
-                                   kSplitviewDividerShortSideLength);
-  }
-}
-
-// static
 gfx::Rect SplitViewDivider::GetDividerBoundsInScreen(
     const gfx::Rect& work_area_bounds_in_screen,
-    OrientationLockType screen_orientation,
+    bool landscape,
     int divider_position,
     bool is_dragging) {
-  const gfx::Size divider_size = GetDividerSize(
-      work_area_bounds_in_screen, screen_orientation, is_dragging);
-  int dragging_diff = (kSplitviewDividerEnlargedShortSideLength -
-                       kSplitviewDividerShortSideLength) /
-                      2;
-  switch (screen_orientation) {
-    case OrientationLockType::kLandscapePrimary:
-    case OrientationLockType::kLandscapeSecondary:
-      return is_dragging
-                 ? gfx::Rect(work_area_bounds_in_screen.x() + divider_position -
-                                 dragging_diff,
-                             work_area_bounds_in_screen.y(),
-                             divider_size.width(), divider_size.height())
-                 : gfx::Rect(work_area_bounds_in_screen.x() + divider_position,
-                             work_area_bounds_in_screen.y(),
-                             divider_size.width(), divider_size.height());
-    case OrientationLockType::kPortraitPrimary:
-    case OrientationLockType::kPortraitSecondary:
-      return is_dragging
-                 ? gfx::Rect(work_area_bounds_in_screen.x(),
-                             work_area_bounds_in_screen.y() + divider_position -
-                                 (kSplitviewDividerEnlargedShortSideLength -
-                                  kSplitviewDividerShortSideLength) /
-                                     2,
-                             divider_size.width(), divider_size.height())
-                 : gfx::Rect(work_area_bounds_in_screen.x(),
-                             work_area_bounds_in_screen.y() + divider_position,
-                             divider_size.width(), divider_size.height());
-    default:
-      NOTREACHED();
-      return gfx::Rect();
+  const int dragging_diff = (kSplitviewDividerEnlargedShortSideLength -
+                             kSplitviewDividerShortSideLength) /
+                            2;
+  if (landscape) {
+    return is_dragging
+               ? gfx::Rect(work_area_bounds_in_screen.x() + divider_position -
+                               dragging_diff,
+                           work_area_bounds_in_screen.y(),
+                           kSplitviewDividerEnlargedShortSideLength,
+                           work_area_bounds_in_screen.height())
+               : gfx::Rect(work_area_bounds_in_screen.x() + divider_position,
+                           work_area_bounds_in_screen.y(),
+                           kSplitviewDividerShortSideLength,
+                           work_area_bounds_in_screen.height());
+  } else {
+    return is_dragging
+               ? gfx::Rect(work_area_bounds_in_screen.x(),
+                           work_area_bounds_in_screen.y() + divider_position -
+                               dragging_diff,
+                           work_area_bounds_in_screen.width(),
+                           kSplitviewDividerEnlargedShortSideLength)
+               : gfx::Rect(work_area_bounds_in_screen.x(),
+                           work_area_bounds_in_screen.y() + divider_position,
+                           work_area_bounds_in_screen.width(),
+                           kSplitviewDividerShortSideLength);
   }
 }
 
@@ -325,10 +301,9 @@
           Shell::GetPrimaryRootWindow()->GetChildById(
               desks_util::GetActiveDeskContainerId()));
   const int divider_position = controller_->divider_position();
-  const OrientationLockType screen_orientation = GetCurrentScreenOrientation();
-  return GetDividerBoundsInScreen(work_area_bounds_in_screen,
-                                  screen_orientation, divider_position,
-                                  is_dragging);
+  const bool landscape = IsCurrentScreenOrientationLandscape();
+  return GetDividerBoundsInScreen(work_area_bounds_in_screen, landscape,
+                                  divider_position, is_dragging);
 }
 
 void SplitViewDivider::SetAlwaysOnTop(bool on_top) {
diff --git a/ash/wm/splitview/split_view_divider.h b/ash/wm/splitview/split_view_divider.h
index 6822e2f..f4e45ac 100644
--- a/ash/wm/splitview/split_view_divider.h
+++ b/ash/wm/splitview/split_view_divider.h
@@ -29,8 +29,6 @@
 
 namespace ash {
 
-enum class OrientationLockType;
-
 class SplitViewController;
 
 // Split view divider. It passes the mouse/gesture events to SplitViewController
@@ -43,16 +41,10 @@
   SplitViewDivider(SplitViewController* controller, aura::Window* root_window);
   ~SplitViewDivider() override;
 
-  // Gets the size of the divider widget. The divider widget is enlarged during
-  // dragging. For now, it's a vertical rectangle.
-  static gfx::Size GetDividerSize(const gfx::Rect& work_area_bounds,
-                                  OrientationLockType screen_orientation,
-                                  bool is_dragging);
-
   // static version of GetDividerBoundsInScreen(bool is_dragging) function.
   static gfx::Rect GetDividerBoundsInScreen(
       const gfx::Rect& work_area_bounds_in_screen,
-      OrientationLockType screen_orientation,
+      bool landscape,
       int divider_position,
       bool is_dragging);
 
diff --git a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
index 10ad792..ec42662 100644
--- a/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
+++ b/ash/wm/tablet_mode/tablet_mode_browser_window_drag_delegate.cc
@@ -6,6 +6,7 @@
 
 #include <vector>
 
+#include "ash/display/screen_orientation_controller.h"
 #include "ash/home_screen/home_screen_controller.h"
 #include "ash/public/cpp/wallpaper_types.h"
 #include "ash/root_window_controller.h"
diff --git a/ash/wm/tablet_mode/tablet_mode_controller.cc b/ash/wm/tablet_mode/tablet_mode_controller.cc
index 7eec120..4a511d6 100644
--- a/ash/wm/tablet_mode/tablet_mode_controller.cc
+++ b/ash/wm/tablet_mode/tablet_mode_controller.cc
@@ -1049,13 +1049,6 @@
 
   auto* screenshot_window = top_window->GetRootWindow()->GetChildById(
       kShellWindowId_ScreenRotationContainer);
-
-  // Pause the compositor and hide the top window before taking a screenshot.
-  // Use opacity zero instead of show/hide to preserve MRU ordering.
-  const auto roots = Shell::GetAllRootWindows();
-  for (auto* root : roots)
-    root->GetHost()->compositor()->SetAllowLocksToExtendTimeout(true);
-  top_window->layer()->SetOpacity(0.f);
   base::OnceClosure callback = screenshot_set_callback_.callback();
 
   // Request a screenshot.
@@ -1071,9 +1064,6 @@
   screenshot_request->set_result_selection(request_bounds);
   screenshot_window->layer()->RequestCopyOfOutput(
       std::move(screenshot_request));
-
-  for (auto* root : roots)
-    root->GetHost()->compositor()->SetAllowLocksToExtendTimeout(false);
 }
 
 void TabletModeController::OnScreenshotTaken(
@@ -1081,8 +1071,6 @@
     std::unique_ptr<viz::CopyOutputResult> copy_result) {
   aura::Window* top_window =
       destroy_observer_ ? destroy_observer_->window() : nullptr;
-  if (top_window)
-    top_window->layer()->SetOpacity(1.f);
   ResetDestroyObserver();
 
   if (!copy_result || copy_result->IsEmpty() || !top_window) {
diff --git a/base/BUILD.gn b/base/BUILD.gn
index 27dbec4..b1cb70e1 100644
--- a/base/BUILD.gn
+++ b/base/BUILD.gn
@@ -3233,6 +3233,7 @@
       "android/java/src/org/chromium/base/ObservableSupplier.java",
       "android/java/src/org/chromium/base/ObservableSupplierImpl.java",
       "android/java/src/org/chromium/base/PackageUtils.java",
+      "android/java/src/org/chromium/base/PackageManagerUtils.java",
       "android/java/src/org/chromium/base/PathService.java",
       "android/java/src/org/chromium/base/PathUtils.java",
       "android/java/src/org/chromium/base/PiiElider.java",
diff --git a/base/allocator/partition_allocator/partition_page.h b/base/allocator/partition_allocator/partition_page.h
index c69c32c..5a0e70f9 100644
--- a/base/allocator/partition_allocator/partition_page.h
+++ b/base/allocator/partition_allocator/partition_page.h
@@ -11,7 +11,6 @@
 #include "base/allocator/partition_allocator/partition_bucket.h"
 #include "base/allocator/partition_allocator/partition_cookie.h"
 #include "base/allocator/partition_allocator/partition_freelist_entry.h"
-#include "base/allocator/partition_allocator/random.h"
 #include "base/logging.h"
 
 namespace base {
@@ -202,28 +201,19 @@
 }
 
 ALWAYS_INLINE void PartitionPage::Free(void* ptr) {
+#if DCHECK_IS_ON()
   size_t slot_size = this->bucket->slot_size;
   const size_t raw_size = get_raw_size();
   if (raw_size) {
     slot_size = raw_size;
   }
 
-#if DCHECK_IS_ON()
   // If these asserts fire, you probably corrupted memory.
   PartitionCookieCheckValue(ptr);
   PartitionCookieCheckValue(reinterpret_cast<char*>(ptr) + slot_size -
                             kCookieSize);
 
   memset(ptr, kFreedByte, slot_size);
-#else
-  // Probabilistically poison the memory. The goal is to do it often enough to
-  // catch bugs in production, but not so often that it significantly affects
-  // performance. Set fewer bits in the mask to increase the probability of
-  // poisoning; set more to reduce the performance effect.
-  constexpr uint32_t kProbabilityMask = 0x3f;
-  if (kProbabilityMask == (RandomValue() & kProbabilityMask)) {
-    memset(ptr, kFreedByte, slot_size);
-  }
 #endif
 
   DCHECK(this->num_allocated_slots);
diff --git a/base/allocator/partition_allocator/random.h b/base/allocator/partition_allocator/random.h
index a9aaa7f..85cb66d 100644
--- a/base/allocator/partition_allocator/random.h
+++ b/base/allocator/partition_allocator/random.h
@@ -15,7 +15,7 @@
 // `base::RandUint64` which is very unpredictable, but which is expensive due to
 // the need to call into the kernel. Therefore this generator uses a fast,
 // entirely user-space function after initialization.
-BASE_EXPORT uint32_t RandomValue();
+uint32_t RandomValue();
 
 // Sets the seed for the random number generator to a known value, to cause the
 // RNG to generate a predictable sequence of outputs. May be called multiple
diff --git a/base/android/java/src/org/chromium/base/PackageManagerUtils.java b/base/android/java/src/org/chromium/base/PackageManagerUtils.java
new file mode 100644
index 0000000..50ac978
--- /dev/null
+++ b/base/android/java/src/org/chromium/base/PackageManagerUtils.java
@@ -0,0 +1,70 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.base;
+
+import android.content.Intent;
+import android.content.pm.PackageManager;
+import android.content.pm.ResolveInfo;
+import android.os.TransactionTooLargeException;
+
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * This class provides Android PackageManager related utility methods.
+ */
+public class PackageManagerUtils {
+    private static final String TAG = "PackageManagerUtils";
+
+    /**
+     * Retrieve information about the Activity that will handle the given Intent.
+     *
+     * Note: This function is expensive on KK and below and should not be called from main thread
+     * when avoidable.
+     *
+     * @param intent Intent to resolve.
+     * @param flags The PackageManager flags to pass to resolveActivity().
+     * @return       ResolveInfo of the Activity that will handle the Intent, or null if it failed.
+     */
+    public static ResolveInfo resolveActivity(Intent intent, int flags) {
+        // On KitKat, calling PackageManager#resolveActivity() causes disk reads and
+        // writes. Temporarily allow this while resolving the intent.
+        try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
+            PackageManager pm = ContextUtils.getApplicationContext().getPackageManager();
+            return pm.resolveActivity(intent, flags);
+        } catch (RuntimeException e) {
+            handleExpectedExceptionsOrRethrow(e, intent);
+        }
+        return null;
+    }
+
+    /**
+     * Get the list of component name of activities which can resolve |intent|.  If the request
+     * fails, an empty list will be returned.
+     *
+     * See {@link PackageManager#queryIntentActivities(Intent, int)}
+     */
+    public static List<ResolveInfo> queryIntentActivities(Intent intent, int flags) {
+        // White-list for Samsung. See http://crbug.com/613977 and https://crbug.com/894160 for more
+        // context.
+        try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
+            PackageManager pm = ContextUtils.getApplicationContext().getPackageManager();
+            return pm.queryIntentActivities(intent, flags);
+        } catch (RuntimeException e) {
+            handleExpectedExceptionsOrRethrow(e, intent);
+        }
+        return Collections.emptyList();
+    }
+
+    // See https://crbug.com/700505 and https://crbug.com/369574.
+    private static void handleExpectedExceptionsOrRethrow(RuntimeException e, Intent intent) {
+        if (e instanceof NullPointerException
+                || e.getCause() instanceof TransactionTooLargeException) {
+            Log.e(TAG, "Could not resolve Activity for intent " + intent.toString(), e);
+        } else {
+            throw e;
+        }
+    }
+}
diff --git a/build/config/android/internal_rules.gni b/build/config/android/internal_rules.gni
index 2bee4f8..af2ccf4 100644
--- a/build/config/android/internal_rules.gni
+++ b/build/config/android/internal_rules.gni
@@ -1515,7 +1515,9 @@
     if (defined(invoker.enable_bytecode_rewriter)) {
       not_needed([
                    "_enable_assert",
+                   "_enable_class_deps_output",
                    "_enable_custom_resources",
+                   "_enable_split_compat",
                    "_enable_thread_annotations",
                  ])
       _enable_bytecode_rewriter = invoker.enable_bytecode_rewriter
diff --git a/build/config/android/rules.gni b/build/config/android/rules.gni
index 5936b57..80efd66 100644
--- a/build/config/android/rules.gni
+++ b/build/config/android/rules.gni
@@ -192,11 +192,12 @@
           "//base/android/jni_generator/jni_generator_helper.h"
       _jni_generator_include_deps = [
         # Using //base/android/jni_generator/jni_generator_helper.h introduces
-        # a dependency on debugging_buildflags indirectly through
+        # a dependency on buildflags targets indirectly through
         # base/android/jni_android.h, which is part of the //base target.
         # This can't depend directly on //base without causing a dependency
         # cycle, though.
         "//base:debugging_buildflags",
+        "//base:logging_buildflags",
       ]
     }
 
diff --git a/build/fuchsia/linux.sdk.sha1 b/build/fuchsia/linux.sdk.sha1
index 156843d7..c0727e7 100644
--- a/build/fuchsia/linux.sdk.sha1
+++ b/build/fuchsia/linux.sdk.sha1
@@ -1 +1 @@
-8901420124367166160
\ No newline at end of file
+8901391751860333728
\ No newline at end of file
diff --git a/build/fuchsia/mac.sdk.sha1 b/build/fuchsia/mac.sdk.sha1
index abc6db2..00cc966 100644
--- a/build/fuchsia/mac.sdk.sha1
+++ b/build/fuchsia/mac.sdk.sha1
@@ -1 +1 @@
-8901421552206782336
\ No newline at end of file
+8901393593484977040
\ No newline at end of file
diff --git a/cc/metrics/frame_sequence_tracker.cc b/cc/metrics/frame_sequence_tracker.cc
index 587c9bb..1204db13 100644
--- a/cc/metrics/frame_sequence_tracker.cc
+++ b/cc/metrics/frame_sequence_tracker.cc
@@ -37,16 +37,19 @@
 enum class ThreadType {
   kMain,
   kCompositor,
+  kSlowerThread,
 };
 
 constexpr int kBuiltinSequenceNum =
     base::size(FrameSequenceTracker::kFrameSequenceTrackerTypeNames);
-constexpr int kMaximumHistogramIndex = 2 * kBuiltinSequenceNum;
+constexpr int kMaximumHistogramIndex = 3 * kBuiltinSequenceNum;
 
 int GetIndexForMetric(ThreadType thread_type, FrameSequenceTrackerType type) {
-  return thread_type == ThreadType::kMain
-             ? static_cast<int>(type)
-             : static_cast<int>(type + kBuiltinSequenceNum);
+  if (thread_type == ThreadType::kMain)
+    return static_cast<int>(type);
+  if (thread_type == ThreadType::kCompositor)
+    return static_cast<int>(type + kBuiltinSequenceNum);
+  return static_cast<int>(type + 2 * kBuiltinSequenceNum);
 }
 
 std::string GetCheckerboardingHistogramName(FrameSequenceTrackerType type) {
@@ -208,14 +211,35 @@
       "cc,benchmark", "FrameSequenceTracker", this, "args",
       ThroughputData::ToTracedValue(impl_throughput_, main_throughput_),
       "checkerboard", checkerboarding_.frames_checkerboarded);
+  ReportMetrics();
+}
 
+void FrameSequenceTracker::ReportMetrics() {
   // Report the throughput metrics.
-  ThroughputData::ReportHistogram(
+  base::Optional<int> impl_throughput_percent = ThroughputData::ReportHistogram(
       type_, "CompositorThread",
       GetIndexForMetric(ThreadType::kCompositor, type_), impl_throughput_);
-  ThroughputData::ReportHistogram(type_, "MainThread",
-                                  GetIndexForMetric(ThreadType::kMain, type_),
-                                  main_throughput_);
+  base::Optional<int> main_throughput_percent = ThroughputData::ReportHistogram(
+      type_, "MainThread", GetIndexForMetric(ThreadType::kMain, type_),
+      main_throughput_);
+
+  base::Optional<ThroughputData> slower_throughput;
+  if (impl_throughput_percent &&
+      (!main_throughput_percent ||
+       impl_throughput_percent.value() < main_throughput_percent.value())) {
+    slower_throughput = impl_throughput_;
+  }
+  if (main_throughput_percent &&
+      (!impl_throughput_percent ||
+       main_throughput_percent.value() < impl_throughput_percent.value())) {
+    slower_throughput = main_throughput_;
+  }
+  if (slower_throughput.has_value()) {
+    ThroughputData::ReportHistogram(
+        type_, "SlowerThread",
+        GetIndexForMetric(ThreadType::kSlowerThread, type_),
+        slower_throughput.value());
+  }
 
   // Report the checkerboarding metrics.
   if (impl_throughput_.frames_expected >= kMinFramesForThroughputMetric) {
@@ -462,7 +486,7 @@
   return dict;
 }
 
-void FrameSequenceTracker::ThroughputData::ReportHistogram(
+base::Optional<int> FrameSequenceTracker::ThroughputData::ReportHistogram(
     FrameSequenceTrackerType sequence_type,
     const char* thread_name,
     int metric_index,
@@ -477,7 +501,7 @@
           base::HistogramBase::kUmaTargetedHistogramFlag));
 
   if (data.frames_expected < kMinFramesForThroughputMetric)
-    return;
+    return base::nullopt;
 
   const int percent =
       static_cast<int>(100 * data.frames_produced / data.frames_expected);
@@ -487,6 +511,7 @@
       base::LinearHistogram::FactoryGet(
           GetThroughputHistogramName(sequence_type, thread_name), 1, 100, 101,
           base::HistogramBase::kUmaTargetedHistogramFlag));
+  return percent;
 }
 
 FrameSequenceTracker::CheckerboardingData::CheckerboardingData() = default;
diff --git a/cc/metrics/frame_sequence_tracker.h b/cc/metrics/frame_sequence_tracker.h
index 7b69b9c5..0c8dfe2 100644
--- a/cc/metrics/frame_sequence_tracker.h
+++ b/cc/metrics/frame_sequence_tracker.h
@@ -15,6 +15,7 @@
 #include "base/containers/circular_deque.h"
 #include "base/containers/flat_map.h"
 #include "base/macros.h"
+#include "base/optional.h"
 #include "base/trace_event/traced_value.h"
 #include "cc/cc_export.h"
 
@@ -193,10 +194,13 @@
     static std::unique_ptr<base::trace_event::TracedValue> ToTracedValue(
         const ThroughputData& impl,
         const ThroughputData& main);
-    static void ReportHistogram(FrameSequenceTrackerType sequence_type,
-                                const char* thread_name,
-                                int metric_index,
-                                const ThroughputData& data);
+    // Returns the throughput in percent, a return value of base::nullopt
+    // indicates that no throughput metric is reported.
+    static base::Optional<int> ReportHistogram(
+        FrameSequenceTrackerType sequence_type,
+        const char* thread_name,
+        int metric_index,
+        const ThroughputData& data);
     // Tracks the number of frames that were expected to be shown during this
     // frame-sequence.
     uint32_t frames_expected = 0;
@@ -230,6 +234,9 @@
 
   bool ShouldIgnoreBeginFrameSource(uint64_t source_id) const;
 
+  // Report related metrics: throughput, checkboarding...
+  void ReportMetrics();
+
   const FrameSequenceTrackerType type_;
 
   TerminationStatus termination_status_ = TerminationStatus::kActive;
diff --git a/cc/metrics/frame_sequence_tracker_unittest.cc b/cc/metrics/frame_sequence_tracker_unittest.cc
index f1a6ed6..c04def2 100644
--- a/cc/metrics/frame_sequence_tracker_unittest.cc
+++ b/cc/metrics/frame_sequence_tracker_unittest.cc
@@ -7,6 +7,7 @@
 #include <vector>
 
 #include "base/macros.h"
+#include "base/test/metrics/histogram_tester.h"
 #include "cc/metrics/compositor_frame_reporting_controller.h"
 #include "components/viz/common/frame_sinks/begin_frame_args.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -111,6 +112,45 @@
     EXPECT_TRUE(collection_.removal_trackers_.empty());
   }
 
+  void ReportMetrics() {
+    base::HistogramTester histogram_tester;
+
+    // Test that there is no main thread frames expected.
+    tracker_->impl_throughput_.frames_expected = 100u;
+    tracker_->impl_throughput_.frames_produced = 85u;
+    tracker_->ReportMetrics();
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.CompositorThread.TouchScroll", 1u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.MainThread.TouchScroll", 0u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.SlowerThread.TouchScroll", 1u);
+
+    // Test that both are reported.
+    tracker_->main_throughput_.frames_expected = 50u;
+    tracker_->main_throughput_.frames_produced = 25u;
+    tracker_->ReportMetrics();
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.CompositorThread.TouchScroll", 2u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.MainThread.TouchScroll", 1u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.SlowerThread.TouchScroll", 2u);
+
+    // Test that none is reported.
+    tracker_->main_throughput_.frames_expected = 2u;
+    tracker_->main_throughput_.frames_produced = 1u;
+    tracker_->impl_throughput_.frames_expected = 2u;
+    tracker_->impl_throughput_.frames_produced = 1u;
+    tracker_->ReportMetrics();
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.CompositorThread.TouchScroll", 2u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.MainThread.TouchScroll", 1u);
+    histogram_tester.ExpectTotalCount(
+        "Graphics.Smoothness.Throughput.SlowerThread.TouchScroll", 2u);
+  }
+
  protected:
   uint32_t number_of_frames_checkerboarded() const {
     return tracker_->checkerboarding_.frames_checkerboarded;
@@ -274,4 +314,8 @@
   EXPECT_EQ(kFrames, number_of_frames_checkerboarded());
 }
 
+TEST_F(FrameSequenceTrackerTest, ReportMetrics) {
+  ReportMetrics();
+}
+
 }  // namespace cc
diff --git a/cc/paint/paint_op_buffer.cc b/cc/paint/paint_op_buffer.cc
index 6ac1a1e..2fa54ab 100644
--- a/cc/paint/paint_op_buffer.cc
+++ b/cc/paint/paint_op_buffer.cc
@@ -2373,7 +2373,11 @@
       third = NextUnfoldedOp();
       if (third && third->GetType() == PaintOpType::Restore) {
         auto* save_op = static_cast<const SaveLayerAlphaOp*>(current_op_);
-        if (draw_op->IsPaintOpWithFlags()) {
+        if (draw_op->IsPaintOpWithFlags() &&
+            // SkPaint::drawTextBlob() applies alpha on each glyph so we don't
+            // fold SaveLayerAlpha into DrwaTextBlob to ensure correct alpha
+            // even if some glyphs overlap.
+            draw_op->GetType() != PaintOpType::DrawTextBlob) {
           auto* flags_op = static_cast<const PaintOpWithFlags*>(draw_op);
           if (flags_op->flags.SupportsFoldingAlpha()) {
             current_alpha_ = save_op->alpha;
diff --git a/cc/paint/paint_op_buffer_unittest.cc b/cc/paint/paint_op_buffer_unittest.cc
index ec277b86..2d35d90 100644
--- a/cc/paint/paint_op_buffer_unittest.cc
+++ b/cc/paint/paint_op_buffer_unittest.cc
@@ -48,7 +48,6 @@
   for (auto* op : PaintOpBuffer::Iterator(buffer))
     EXPECT_TRUE(static_cast<T*>(op)->IsValid());
 }
-
 }  // namespace
 
 class PaintOpSerializationTestUtils {
@@ -240,6 +239,26 @@
   EXPECT_LE(std::abs(expected_alpha - canvas.paint_.getAlpha()), 1.f);
 }
 
+// Verify that we don't optimize SaveLayerAlpha / DrawTextBlob / Restore.
+TEST(PaintOpBufferTest, SaveDrawTextBlobRestore) {
+  PaintOpBuffer buffer;
+
+  uint8_t alpha = 100;
+  buffer.push<SaveLayerAlphaOp>(nullptr, alpha);
+
+  PaintFlags paint_flags;
+  EXPECT_TRUE(paint_flags.SupportsFoldingAlpha());
+  buffer.push<DrawTextBlobOp>(SkTextBlob::MakeFromString("abc", SkFont()), 0, 0,
+                              paint_flags);
+  buffer.push<RestoreOp>();
+
+  SaveCountingCanvas canvas;
+  buffer.Playback(&canvas);
+
+  EXPECT_EQ(1, canvas.save_count_);
+  EXPECT_EQ(1, canvas.restore_count_);
+}
+
 // The same as SaveDrawRestore, but test that the optimization doesn't apply
 // when the drawing op's flags are not compatible with being folded into the
 // save layer with opacity.
diff --git a/cc/trees/latency_info_swap_promise_monitor.cc b/cc/trees/latency_info_swap_promise_monitor.cc
index 5da4b68..a69055c 100644
--- a/cc/trees/latency_info_swap_promise_monitor.cc
+++ b/cc/trees/latency_info_swap_promise_monitor.cc
@@ -25,16 +25,6 @@
   return true;
 }
 
-bool AddForwardingScrollUpdateToMainComponent(ui::LatencyInfo* latency_info) {
-  if (latency_info->FindLatency(
-          ui::INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT,
-          nullptr))
-    return false;
-  latency_info->AddLatencyNumber(
-      ui::INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT);
-  return true;
-}
-
 }  // namespace
 
 namespace cc {
@@ -67,20 +57,4 @@
   }
 }
 
-void LatencyInfoSwapPromiseMonitor::OnForwardScrollUpdateToMainThreadOnImpl() {
-  if (AddForwardingScrollUpdateToMainComponent(latency_)) {
-    ui::LatencyInfo new_latency;
-    new_latency.CopyLatencyFrom(
-        *latency_,
-        ui::INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT);
-    new_latency.AddLatencyNumberWithTraceName(
-        ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT,
-        "ScrollUpdate");
-    std::unique_ptr<SwapPromise> swap_promise(
-        new LatencyInfoSwapPromise(new_latency));
-    host_impl_->QueueSwapPromiseForMainThreadScrollUpdate(
-        std::move(swap_promise));
-  }
-}
-
 }  // namespace cc
diff --git a/cc/trees/latency_info_swap_promise_monitor.h b/cc/trees/latency_info_swap_promise_monitor.h
index c127b96..eb1d8f4 100644
--- a/cc/trees/latency_info_swap_promise_monitor.h
+++ b/cc/trees/latency_info_swap_promise_monitor.h
@@ -26,7 +26,6 @@
 
   void OnSetNeedsCommitOnMain() override;
   void OnSetNeedsRedrawOnImpl() override;
-  void OnForwardScrollUpdateToMainThreadOnImpl() override;
 
  private:
   ui::LatencyInfo* latency_;
diff --git a/cc/trees/layer_tree_host_impl.cc b/cc/trees/layer_tree_host_impl.cc
index cd9fe74..0fa59ab 100644
--- a/cc/trees/layer_tree_host_impl.cc
+++ b/cc/trees/layer_tree_host_impl.cc
@@ -4711,11 +4711,6 @@
   if (did_scroll_content) {
     ShowScrollbarsForImplScroll(current_scrolling_node->element_id);
 
-    // If we are scrolling with an active scroll handler, forward latency
-    // tracking information to the main thread so the delay introduced by the
-    // handler is accounted for.
-    if (scroll_affects_scroll_handler())
-      NotifySwapPromiseMonitorsOfForwardingToMainThread();
     client_->SetNeedsCommitOnImplThread();
     SetNeedsRedraw();
     client_->RenewTreePriority();
@@ -5855,12 +5850,6 @@
     (*it)->OnSetNeedsRedrawOnImpl();
 }
 
-void LayerTreeHostImpl::NotifySwapPromiseMonitorsOfForwardingToMainThread() {
-  auto it = swap_promise_monitor_.begin();
-  for (; it != swap_promise_monitor_.end(); it++)
-    (*it)->OnForwardScrollUpdateToMainThreadOnImpl();
-}
-
 void LayerTreeHostImpl::UpdateRootLayerStateForSynchronousInputHandler() {
   if (!input_handler_client_)
     return;
diff --git a/cc/trees/layer_tree_host_impl.h b/cc/trees/layer_tree_host_impl.h
index c5bfb94..514f6a7 100644
--- a/cc/trees/layer_tree_host_impl.h
+++ b/cc/trees/layer_tree_host_impl.h
@@ -946,7 +946,6 @@
                             bool lost);
 
   void NotifySwapPromiseMonitorsOfSetNeedsRedraw();
-  void NotifySwapPromiseMonitorsOfForwardingToMainThread();
 
   void UpdateRootLayerStateForSynchronousInputHandler();
 
diff --git a/cc/trees/layer_tree_host_impl_unittest.cc b/cc/trees/layer_tree_host_impl_unittest.cc
index 139ec35..fe090fca 100644
--- a/cc/trees/layer_tree_host_impl_unittest.cc
+++ b/cc/trees/layer_tree_host_impl_unittest.cc
@@ -9640,15 +9640,13 @@
   SimpleSwapPromiseMonitor(LayerTreeHost* layer_tree_host,
                            LayerTreeHostImpl* layer_tree_host_impl,
                            int* set_needs_commit_count,
-                           int* set_needs_redraw_count,
-                           int* forward_to_main_count)
+                           int* set_needs_redraw_count)
       : SwapPromiseMonitor(
             (layer_tree_host ? layer_tree_host->GetSwapPromiseManager()
                              : nullptr),
             layer_tree_host_impl),
         set_needs_commit_count_(set_needs_commit_count),
-        set_needs_redraw_count_(set_needs_redraw_count),
-        forward_to_main_count_(forward_to_main_count) {}
+        set_needs_redraw_count_(set_needs_redraw_count) {}
 
   ~SimpleSwapPromiseMonitor() override = default;
 
@@ -9656,30 +9654,23 @@
 
   void OnSetNeedsRedrawOnImpl() override { (*set_needs_redraw_count_)++; }
 
-  void OnForwardScrollUpdateToMainThreadOnImpl() override {
-    (*forward_to_main_count_)++;
-  }
-
  private:
   int* set_needs_commit_count_;
   int* set_needs_redraw_count_;
-  int* forward_to_main_count_;
 };
 
 TEST_F(LayerTreeHostImplTest, SimpleSwapPromiseMonitor) {
   int set_needs_commit_count = 0;
   int set_needs_redraw_count = 0;
-  int forward_to_main_count = 0;
 
   {
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     host_impl_->SetNeedsRedraw();
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(1, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
   }
 
   // Now the monitor is destroyed, SetNeedsRedraw() is no longer being
@@ -9687,42 +9678,38 @@
   host_impl_->SetNeedsRedraw();
   EXPECT_EQ(0, set_needs_commit_count);
   EXPECT_EQ(1, set_needs_redraw_count);
-  EXPECT_EQ(0, forward_to_main_count);
 
   {
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     // Redraw with damage.
     host_impl_->SetFullViewportDamage();
     host_impl_->SetNeedsRedraw();
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(2, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
   }
 
   {
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     // Redraw without damage.
     host_impl_->SetNeedsRedraw();
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(3, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
   }
 
   set_needs_commit_count = 0;
   set_needs_redraw_count = 0;
-  forward_to_main_count = 0;
 
   {
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     SetupViewportLayersInnerScrolls(gfx::Size(50, 50), gfx::Size(100, 100));
 
     // Scrolling normally should not trigger any forwarding.
@@ -9739,7 +9726,6 @@
 
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(1, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
 
     // Scrolling with a scroll handler should defer the swap to the main
     // thread.
@@ -9757,7 +9743,6 @@
 
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(2, set_needs_redraw_count);
-    EXPECT_EQ(1, forward_to_main_count);
   }
 }
 
@@ -10773,18 +10758,16 @@
     // for LatencyInfo's to be propagated along with the CompositorFrame
     int set_needs_commit_count = 0;
     int set_needs_redraw_count = 0;
-    int forward_to_main_count = 0;
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     EXPECT_EQ(
         InputHandler::SCROLL_ON_IMPL_THREAD,
         host_impl_->ScrollAnimated(gfx::Point(), gfx::Vector2d(0, 50)).thread);
 
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(1, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
   }
 
   LayerImpl* scrolling_layer = host_impl_->OuterViewportScrollLayer();
@@ -10815,11 +10798,10 @@
     // for LatencyInfo's to be propagated along with the CompositorFrame
     int set_needs_commit_count = 0;
     int set_needs_redraw_count = 0;
-    int forward_to_main_count = 0;
     std::unique_ptr<SimpleSwapPromiseMonitor> swap_promise_monitor(
-        new SimpleSwapPromiseMonitor(
-            nullptr, host_impl_.get(), &set_needs_commit_count,
-            &set_needs_redraw_count, &forward_to_main_count));
+        new SimpleSwapPromiseMonitor(nullptr, host_impl_.get(),
+                                     &set_needs_commit_count,
+                                     &set_needs_redraw_count));
     // Update target.
     EXPECT_EQ(
         InputHandler::SCROLL_ON_IMPL_THREAD,
@@ -10827,7 +10809,6 @@
 
     EXPECT_EQ(0, set_needs_commit_count);
     EXPECT_EQ(1, set_needs_redraw_count);
-    EXPECT_EQ(0, forward_to_main_count);
   }
 
   host_impl_->DidFinishImplFrame();
diff --git a/cc/trees/layer_tree_host_unittest.cc b/cc/trees/layer_tree_host_unittest.cc
index 44261f42..c598e2e 100644
--- a/cc/trees/layer_tree_host_unittest.cc
+++ b/cc/trees/layer_tree_host_unittest.cc
@@ -5941,10 +5941,6 @@
     ADD_FAILURE() << "Should not get called on main thread.";
   }
 
-  void OnForwardScrollUpdateToMainThreadOnImpl() override {
-    ADD_FAILURE() << "Should not get called on main thread.";
-  }
-
  private:
   int* set_needs_commit_count_;
 };
diff --git a/cc/trees/swap_promise_manager_unittest.cc b/cc/trees/swap_promise_manager_unittest.cc
index 154feb1..5bf0c07 100644
--- a/cc/trees/swap_promise_manager_unittest.cc
+++ b/cc/trees/swap_promise_manager_unittest.cc
@@ -21,7 +21,6 @@
 
   MOCK_METHOD0(OnSetNeedsCommitOnMain, void());
   void OnSetNeedsRedrawOnImpl() override {}
-  void OnForwardScrollUpdateToMainThreadOnImpl() override {}
 };
 
 class MockSwapPromise : public SwapPromise {
diff --git a/cc/trees/swap_promise_monitor.h b/cc/trees/swap_promise_monitor.h
index 7efe2e2..3350ca1 100644
--- a/cc/trees/swap_promise_monitor.h
+++ b/cc/trees/swap_promise_monitor.h
@@ -33,7 +33,6 @@
 
   virtual void OnSetNeedsCommitOnMain() = 0;
   virtual void OnSetNeedsRedrawOnImpl() = 0;
-  virtual void OnForwardScrollUpdateToMainThreadOnImpl() = 0;
 
  protected:
   SwapPromiseManager* swap_promise_manager_;
diff --git a/chrome/VERSION b/chrome/VERSION
index d707c24d..8b9bf8d 100644
--- a/chrome/VERSION
+++ b/chrome/VERSION
@@ -1,4 +1,4 @@
 MAJOR=79
 MINOR=0
-BUILD=3923
+BUILD=3924
 PATCH=0
diff --git a/chrome/android/chrome_java_sources.gni b/chrome/android/chrome_java_sources.gni
index 2e2344d..506a632 100644
--- a/chrome/android/chrome_java_sources.gni
+++ b/chrome/android/chrome_java_sources.gni
@@ -1428,6 +1428,7 @@
   "java/src/org/chromium/chrome/browser/rlz/RevenueStats.java",
   "java/src/org/chromium/chrome/browser/rlz/RlzPingHandler.java",
   "java/src/org/chromium/chrome/browser/safe_browsing/FileTypePolicies.java",
+  "java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java",
   "java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java",
   "java/src/org/chromium/chrome/browser/search_engines/TemplateUrlServiceFactory.java",
   "java/src/org/chromium/chrome/browser/searchwidget/SearchActivity.java",
diff --git a/chrome/android/chrome_junit_test_java_sources.gni b/chrome/android/chrome_junit_test_java_sources.gni
index 98e3127..d264c34 100644
--- a/chrome/android/chrome_junit_test_java_sources.gni
+++ b/chrome/android/chrome_junit_test_java_sources.gni
@@ -177,6 +177,7 @@
   "junit/src/org/chromium/chrome/browser/preferences/password/SingleThreadBarrierClosureTest.java",
   "junit/src/org/chromium/chrome/browser/preferences/password/TimedCallbackDelayerTest.java",
   "junit/src/org/chromium/chrome/browser/preferences/privacy/PrivacyPreferencesManagerTest.java",
+  "junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java",
   "junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java",
   "junit/src/org/chromium/chrome/browser/send_tab_to_self/NotificationSharedPrefManagerTest.java",
   "junit/src/org/chromium/chrome/browser/send_tab_to_self/SendTabToSelfAndroidBridgeTest.java",
diff --git a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiTestUtil.java b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiTestUtil.java
index e5dae4b..3badbb0f1 100644
--- a/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiTestUtil.java
+++ b/chrome/android/features/autofill_assistant/javatests/src/org/chromium/chrome/browser/autofill_assistant/AutofillAssistantUiTestUtil.java
@@ -150,7 +150,7 @@
         ((BottomContainer) activity.findViewById(R.id.bottom_container))
                 .setBottomSheet(bottomSheet);
 
-        return new BottomSheetController(activity, activity.getLifecycleDispatcher(),
+        return new BottomSheetController(activity.getLifecycleDispatcher(),
                 activity.getActivityTabProvider(), activity.getScrim(), bottomSheet,
                 activity.getCompositorViewHolder().getLayoutManager().getOverlayPanelManager());
     }
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_am.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_am.xtb
index 1617abe..a709df5 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_am.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_am.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">አድራሻዎች</translation>
 <translation id="4092349052316400070">አድራሻ ይሙሉ</translation>
 <translation id="4660011489602794167">የቁልፍ ሰሌዳን አሳይ</translation>
+<translation id="5000422505195156897">ራስ ሙላ ጥቆማዎች ይገኛሉ</translation>
 <translation id="5088366526685584589">የተቀመጡ አድራሻዎችን በማሳየት ላይ</translation>
 <translation id="6393156038355142111">ጠንካራ የይለፍ ቃል ጠቁም</translation>
 <translation id="6696046606263842994">የይለፍ ቃል ይሙሉ</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ar.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ar.xtb
index 732da036..722b87b 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ar.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ar.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">العناوين</translation>
 <translation id="4092349052316400070">ملء عنوان</translation>
 <translation id="4660011489602794167">عرض لوحة المفاتيح</translation>
+<translation id="5000422505195156897">تتوفر اقتراحات للملء التلقائي.</translation>
 <translation id="5088366526685584589">جارٍ عرض العناوين المحفوظة.</translation>
 <translation id="6393156038355142111">اقتراح كلمة مرور قوية</translation>
 <translation id="6696046606263842994">ملء كلمة مرور.</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bg.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bg.xtb
index d206e7f..221b5a2 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bg.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bg.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Адреси</translation>
 <translation id="4092349052316400070">Попълване на адреса</translation>
 <translation id="4660011489602794167">Показване на клавиатурата</translation>
+<translation id="5000422505195156897">Предложенията за автоматично попълване са показани</translation>
 <translation id="5088366526685584589">Показани са запазените адреси</translation>
 <translation id="6393156038355142111">Предложение за надеждна парола</translation>
 <translation id="6696046606263842994">Попълване на паролата</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bn.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bn.xtb
index 0831eaf..b2890a80 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bn.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_bn.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">ঠিকানা</translation>
 <translation id="4092349052316400070">ঠিকানা লিখুন</translation>
 <translation id="4660011489602794167">কীবোর্ড দেখান</translation>
+<translation id="5000422505195156897">অটোফিল সম্পর্কিত সাজেশন উপলভ্য</translation>
 <translation id="5088366526685584589">সেভ করে রাখা ঠিকানা দেখানো হচ্ছে</translation>
 <translation id="6393156038355142111">শক্তিশালী পাসওয়ার্ড সাজেস্ট করুন</translation>
 <translation id="6696046606263842994">পাসওয়ার্ড লিখুন</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ca.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ca.xtb
index e3fb7a1..65c83c7 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ca.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ca.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adreces</translation>
 <translation id="4092349052316400070">Emplena amb l'adreça</translation>
 <translation id="4660011489602794167">Mostra el teclat</translation>
+<translation id="5000422505195156897">Suggeriments disponibles de la funció Emplenament automàtic</translation>
 <translation id="5088366526685584589">S'estan mostrant les adreces desades</translation>
 <translation id="6393156038355142111">Suggereix una contrasenya segura</translation>
 <translation id="6696046606263842994">Emplena amb la contrasenya</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_cs.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_cs.xtb
index f2fe556..69e07d2 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_cs.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_cs.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresy</translation>
 <translation id="4092349052316400070">Vyplnit adresu</translation>
 <translation id="4660011489602794167">Zobrazit klávesnici</translation>
+<translation id="5000422505195156897">Jsou k dispozici návrhy automatického vyplňování</translation>
 <translation id="5088366526685584589">Zobrazují se uložené adresy</translation>
 <translation id="6393156038355142111">Navrhnout silné heslo</translation>
 <translation id="6696046606263842994">Vyplnit heslo</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_da.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_da.xtb
index 87ee9d4..d3a1324 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_da.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_da.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresser</translation>
 <translation id="4092349052316400070">Udfyld adresse</translation>
 <translation id="4660011489602794167">Vis tastatur</translation>
+<translation id="5000422505195156897">Tilgængelige forslag fra AutoFyld</translation>
 <translation id="5088366526685584589">Viser gemte adresser</translation>
 <translation id="6393156038355142111">Foreslå en stærk adgangskode</translation>
 <translation id="6696046606263842994">Udfyld adgangskode</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_de.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_de.xtb
index fa049ed..26538d6 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_de.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_de.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adressen</translation>
 <translation id="4092349052316400070">Adresse einfügen</translation>
 <translation id="4660011489602794167">Tastatur anzeigen</translation>
+<translation id="5000422505195156897">AutoFill-Vorschläge verfügbar</translation>
 <translation id="5088366526685584589">Gespeicherte Adressen werden angezeigt</translation>
 <translation id="6393156038355142111">Starkes Passwort vorschlagen</translation>
 <translation id="6696046606263842994">Passwort einfügen</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_el.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_el.xtb
index aced991..a5c4d93f 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_el.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_el.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Διευθύνσεις</translation>
 <translation id="4092349052316400070">Συμπλήρωση διεύθυνσης</translation>
 <translation id="4660011489602794167">Εμφάνιση πληκτρολογίου</translation>
+<translation id="5000422505195156897">Διαθέσιμες προτάσεις αυτόματης συμπλήρωσης</translation>
 <translation id="5088366526685584589">Εμφάνιση αποθηκευμένων διευθύνσεων</translation>
 <translation id="6393156038355142111">Πρόταση ισχυρού κωδικού πρόσβασης</translation>
 <translation id="6696046606263842994">Συμπλήρωση κωδικού πρόσβασης</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_en-GB.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_en-GB.xtb
index 4df59ae..74aa583 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_en-GB.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_en-GB.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Addresses</translation>
 <translation id="4092349052316400070">Fill address</translation>
 <translation id="4660011489602794167">Show keyboard</translation>
+<translation id="5000422505195156897">Autofill suggestions available</translation>
 <translation id="5088366526685584589">Showing saved addresses</translation>
 <translation id="6393156038355142111">Suggest strong password</translation>
 <translation id="6696046606263842994">Fill password</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es-419.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es-419.xtb
index 52b99640..56e92842 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es-419.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es-419.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Direcciones</translation>
 <translation id="4092349052316400070">Elige una dirección</translation>
 <translation id="4660011489602794167">Mostrar teclado</translation>
+<translation id="5000422505195156897">Hay sugerencias de Autocompletar disponibles</translation>
 <translation id="5088366526685584589">Se muestran las direcciones guardadas</translation>
 <translation id="6393156038355142111">Sugerir contraseña segura</translation>
 <translation id="6696046606263842994">Elige la contraseña</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es.xtb
index 67ddb54..03456f5 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_es.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Direcciones</translation>
 <translation id="4092349052316400070">Rellenar dirección</translation>
 <translation id="4660011489602794167">Mostrar teclado</translation>
+<translation id="5000422505195156897">Sugerencias de la función Autocompletar disponibles</translation>
 <translation id="5088366526685584589">Mostrando direcciones guardadas</translation>
 <translation id="6393156038355142111">Sugerir contraseña segura</translation>
 <translation id="6696046606263842994">Rellenar contraseña</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_et.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_et.xtb
index 8a1b313..4a35c4e 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_et.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_et.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Aadressid</translation>
 <translation id="4092349052316400070">Täitke aadressiväli</translation>
 <translation id="4660011489602794167">Kuva klaviatuur</translation>
+<translation id="5000422505195156897">Automaattäite soovitused on saadaval</translation>
 <translation id="5088366526685584589">Kuvatakse salvestatud aadresse</translation>
 <translation id="6393156038355142111">Soovita tugevat parooli</translation>
 <translation id="6696046606263842994">Täitke parooliväli</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fa.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fa.xtb
index 97c91a3..f13bf98 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fa.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fa.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">آدرس‌ها</translation>
 <translation id="4092349052316400070">نشانی را تکمیل کنید</translation>
 <translation id="4660011489602794167">نمایش صفحه‌کلید</translation>
+<translation id="5000422505195156897">پیشنهادهای «تکمیل خودکار» در دسترس است</translation>
 <translation id="5088366526685584589">درحال نمایش نشانی‌های ذخیره‌شده</translation>
 <translation id="6393156038355142111">پیشنهاد گذرواژه قوی</translation>
 <translation id="6696046606263842994">گذرواژه را تکمیل کنید</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fi.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fi.xtb
index 2eb498c2..b1e52b2 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fi.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fi.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Osoitteet</translation>
 <translation id="4092349052316400070">Täytä osoite</translation>
 <translation id="4660011489602794167">Näytä näppäimistö</translation>
+<translation id="5000422505195156897">Automaattisen täytön ehdotuksia saatavilla</translation>
 <translation id="5088366526685584589">Näytetään tallennetut osoitteet</translation>
 <translation id="6393156038355142111">Ehdota vahvaa salasanaa</translation>
 <translation id="6696046606263842994">Täytä salasana</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fil.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fil.xtb
index ffdc8466..f54a6d3 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fil.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fil.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Mga Address</translation>
 <translation id="4092349052316400070">Punan ang address</translation>
 <translation id="4660011489602794167">Ipakita ang keyboard</translation>
+<translation id="5000422505195156897">Available na mga suhestyon ng autofill</translation>
 <translation id="5088366526685584589">Ipinapakita ang mga naka-save na address</translation>
 <translation id="6393156038355142111">Magmungkahi ng malakas na password</translation>
 <translation id="6696046606263842994">Punan ang password</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fr.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fr.xtb
index 5008c7d..3d15060 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fr.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_fr.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresses</translation>
 <translation id="4092349052316400070">Remplir le champ de l'adresse</translation>
 <translation id="4660011489602794167">Afficher le clavier</translation>
+<translation id="5000422505195156897">Suggestions de saisie automatique disponibles</translation>
 <translation id="5088366526685584589">Affichage des adresses enregistrées</translation>
 <translation id="6393156038355142111">Suggérer un mot de passe sécurisé</translation>
 <translation id="6696046606263842994">Remplir le champ du mot de passe</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_gu.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_gu.xtb
index 7f94e45..ba870ef 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_gu.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_gu.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">સરનામાંઓ</translation>
 <translation id="4092349052316400070">સરનામું ભરો</translation>
 <translation id="4660011489602794167">કીબોર્ડ બતાવો</translation>
+<translation id="5000422505195156897">ઑટોમૅટિક રીતે ભરવાના સૂચનો ઉપલબ્ધ છે</translation>
 <translation id="5088366526685584589">સાચવેલાં સરનામાં</translation>
 <translation id="6393156038355142111">સશક્ત પાસવર્ડ સૂચવો</translation>
 <translation id="6696046606263842994">પાસવર્ડ ભરો</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hi.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hi.xtb
index 936060e..dc6dc25 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hi.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hi.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">पते</translation>
 <translation id="4092349052316400070">पता डालें</translation>
 <translation id="4660011489602794167">कीबोर्ड दिखाएं</translation>
+<translation id="5000422505195156897">ऑटोमैटिक भरे जाने वाले सुझाव उपलब्ध हैं</translation>
 <translation id="5088366526685584589">सेव किए गए पते दिखाए जा रहे हैं</translation>
 <translation id="6393156038355142111">मज़बूत पासवर्ड सुझाएं</translation>
 <translation id="6696046606263842994">पासवर्ड डालें</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb
index fab1b20..84612fe 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hr.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adrese</translation>
 <translation id="4092349052316400070">Upišite adresu</translation>
 <translation id="4660011489602794167">Prikaži tipkovnicu</translation>
+<translation id="5000422505195156897">Dostupni su prijedlozi automatskog popunjavanja</translation>
 <translation id="5088366526685584589">Prikazivanje spremljenih adresa</translation>
 <translation id="6393156038355142111">Predloži snažnu zaporku</translation>
 <translation id="6696046606263842994">Upišite zaporku</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hu.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hu.xtb
index b9c4b5a..23cdee3 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hu.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_hu.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Címek</translation>
 <translation id="4092349052316400070">Cím kitöltése</translation>
 <translation id="4660011489602794167">Billentyűzet megjelenítése</translation>
+<translation id="5000422505195156897">Automatikus kitöltési javaslatok állnak rendelkezésre</translation>
 <translation id="5088366526685584589">Mentett címek megjelenítése</translation>
 <translation id="6393156038355142111">Erős jelszó ajánlása</translation>
 <translation id="6696046606263842994">Jelszó kitöltése</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_id.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_id.xtb
index cf6da73..6175d4fd 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_id.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_id.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Alamat</translation>
 <translation id="4092349052316400070">Isi alamat</translation>
 <translation id="4660011489602794167">Tampilkan keyboard</translation>
+<translation id="5000422505195156897">Saran IsiOtomatis tersedia</translation>
 <translation id="5088366526685584589">Menampilkan alamat yang disimpan</translation>
 <translation id="6393156038355142111">Sarankan sandi yang kuat</translation>
 <translation id="6696046606263842994">Isi sandi</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb
index 650b72cd..ac831670 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_it.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Indirizzi</translation>
 <translation id="4092349052316400070">Inserisci l'indirizzo</translation>
 <translation id="4660011489602794167">Mostra tastiera</translation>
+<translation id="5000422505195156897">Sono disponibili suggerimenti di compilazione automatica</translation>
 <translation id="5088366526685584589">Visualizzazione degli indirizzi salvati</translation>
 <translation id="6393156038355142111">Suggerisci password efficace</translation>
 <translation id="6696046606263842994">Inserisci la password</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_iw.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_iw.xtb
index 34a07f6d..67bd09db 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_iw.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_iw.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">כתובות</translation>
 <translation id="4092349052316400070">אפשר למלא את הכתובת</translation>
 <translation id="4660011489602794167">הצגת מקלדת</translation>
+<translation id="5000422505195156897">יש הצעות למילוי אוטומטי</translation>
 <translation id="5088366526685584589">מוצגות הכתובות השמורות</translation>
 <translation id="6393156038355142111">הצעת סיסמה חזקה</translation>
 <translation id="6696046606263842994">אפשר למלא את הסיסמה</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kn.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kn.xtb
index c5a0f9c..5f8cafb 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kn.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_kn.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">ವಿಳಾಸಗಳು</translation>
 <translation id="4092349052316400070">ವಿಳಾಸವನ್ನು ಭರ್ತಿ ಮಾಡಿ</translation>
 <translation id="4660011489602794167">ಕೀಬೋರ್ಡ್ ತೋರಿಸಿ</translation>
+<translation id="5000422505195156897">ಸ್ವಯಂ ಭರ್ತಿ ಸಲಹೆಗಳು ಲಭ್ಯವಿರುತ್ತವೆ</translation>
 <translation id="5088366526685584589">ಉಳಿಸಿರುವ ವಿಳಾಸಗಳನ್ನು ತೋರಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="6393156038355142111">ಸದೃಢವಾದ ಪಾಸ್‌ವರ್ಡ್ ಸೂಚಿಸಿ</translation>
 <translation id="6696046606263842994">ಪಾಸ್‌ವರ್ಡ್ ಭರ್ತಿಮಾಡಿ</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lt.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lt.xtb
index 306d7e8..2e4b3c1 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lt.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lt.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresai</translation>
 <translation id="4092349052316400070">Užpildyti adresą</translation>
 <translation id="4660011489602794167">Rodyti klaviatūrą</translation>
+<translation id="5000422505195156897">Yra automatinio pildymo pasiūlymų</translation>
 <translation id="5088366526685584589">Rodomi išsaugoti adresai</translation>
 <translation id="6393156038355142111">Siūlyti sudėtingą slaptažodį</translation>
 <translation id="6696046606263842994">Užpildyti slaptažodį</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lv.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lv.xtb
index 3380ec6..aadc22d 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lv.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_lv.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adreses</translation>
 <translation id="4092349052316400070">Aizpildiet adresi</translation>
 <translation id="4660011489602794167">Rādīt tastatūru</translation>
+<translation id="5000422505195156897">Pieejami automātiskās aizpildes iestatījumi</translation>
 <translation id="5088366526685584589">Tiek rādītas saglabātās adreses</translation>
 <translation id="6393156038355142111">Ieteikt drošu paroli</translation>
 <translation id="6696046606263842994">Aizpildiet paroli</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ml.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ml.xtb
index 155ca9f..9be9150 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ml.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ml.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">വിലാസങ്ങള്‍‌</translation>
 <translation id="4092349052316400070">വിലാസം പൂരിപ്പിക്കുക</translation>
 <translation id="4660011489602794167">കീബോര്‍‌ഡ് കാണിക്കുക</translation>
+<translation id="5000422505195156897">സ്വയമേവ പൂരിപ്പിക്കൽ നിർദ്ദേശങ്ങൾ ലഭ്യമാണ്</translation>
 <translation id="5088366526685584589">സംരക്ഷിച്ച വിലാസങ്ങൾ കാണിക്കുന്നു</translation>
 <translation id="6393156038355142111">ശക്തമായ പാസ്‌വേഡ് നിർദ്ദേശിക്കുക</translation>
 <translation id="6696046606263842994">പാസ്‌വേഡ് പൂരിപ്പിക്കുക</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ms.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ms.xtb
index 44e9d16..c2b4e2f 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ms.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ms.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Alamat</translation>
 <translation id="4092349052316400070">Isikan alamat</translation>
 <translation id="4660011489602794167">Tunjukkan papan kekunci</translation>
+<translation id="5000422505195156897">Cadangan autolengkap tersedia</translation>
 <translation id="5088366526685584589">Menunjukkan alamat yang disimpan</translation>
 <translation id="6393156038355142111">Cadangkan kata laluan yang kukuh</translation>
 <translation id="6696046606263842994">Isikan kata laluan</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_nl.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_nl.xtb
index 8b64cf8..66ec1d2 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_nl.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_nl.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adressen</translation>
 <translation id="4092349052316400070">Adres invullen</translation>
 <translation id="4660011489602794167">Toetsenbord weergeven</translation>
+<translation id="5000422505195156897">Suggesties voor automatisch aanvullen beschikbaar</translation>
 <translation id="5088366526685584589">Opgeslagen adressen weergeven</translation>
 <translation id="6393156038355142111">Sterk wachtwoord voorstellen</translation>
 <translation id="6696046606263842994">Wachtwoord invullen</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_no.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_no.xtb
index c75042e9..465a053 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_no.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_no.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresser</translation>
 <translation id="4092349052316400070">Fyll ut adressen</translation>
 <translation id="4660011489602794167">Vis tastatur</translation>
+<translation id="5000422505195156897">Autofyll-forslag er tilgjengelige</translation>
 <translation id="5088366526685584589">Viser lagrede adresser</translation>
 <translation id="6393156038355142111">Foreslå et sterkt passord</translation>
 <translation id="6696046606263842994">Fyll ut passordet</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pl.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pl.xtb
index eda42c6..9f9431b 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pl.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pl.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresy</translation>
 <translation id="4092349052316400070">Uzupełnij adres</translation>
 <translation id="4660011489602794167">Pokaż klawiaturę</translation>
+<translation id="5000422505195156897">Dostępne są sugestie autouzupełniania</translation>
 <translation id="5088366526685584589">Pokazuję zapisane adresy</translation>
 <translation id="6393156038355142111">Zaproponuj silne hasło</translation>
 <translation id="6696046606263842994">Uzupełnij hasło</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-BR.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-BR.xtb
index ccddf442..fbbe7db 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-BR.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-BR.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Endereços</translation>
 <translation id="4092349052316400070">Preencha o endereço</translation>
 <translation id="4660011489602794167">Mostrar teclado</translation>
+<translation id="5000422505195156897">Sugestões de preenchimento automático disponíveis</translation>
 <translation id="5088366526685584589">Mostrando endereços salvos</translation>
 <translation id="6393156038355142111">Sugerir senha forte</translation>
 <translation id="6696046606263842994">Preencha a senha</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb
index bc6f9dbe..ee671eda 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_pt-PT.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Endereços</translation>
 <translation id="4092349052316400070">Preencha o endereço</translation>
 <translation id="4660011489602794167">Mostrar teclado</translation>
+<translation id="5000422505195156897">Sugestões do preenchimento automático disponíveis</translation>
 <translation id="5088366526685584589">A mostrar endereços guardados</translation>
 <translation id="6393156038355142111">Sugerir palavra-passe forte</translation>
 <translation id="6696046606263842994">Preencha a palavra-passe</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ru.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ru.xtb
index a0a409a..8369ae4 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ru.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_ru.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Адреса</translation>
 <translation id="4092349052316400070">Указать этот адрес</translation>
 <translation id="4660011489602794167">Показать клавиатуру</translation>
+<translation id="5000422505195156897">Доступны варианты автозаполнения</translation>
 <translation id="5088366526685584589">Показаны сохраненные адреса</translation>
 <translation id="6393156038355142111">Сгенерировать надежный пароль</translation>
 <translation id="6696046606263842994">Указать этот пароль</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb
index f97ec162..e2e7ef8 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sk.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresy</translation>
 <translation id="4092349052316400070">Vyplňte adresu</translation>
 <translation id="4660011489602794167">Zobraziť klávesnicu</translation>
+<translation id="5000422505195156897">K dispozícii sú návrhy automatického dopĺňania</translation>
 <translation id="5088366526685584589">Zobrazujú sa uložené adresy</translation>
 <translation id="6393156038355142111">Navrhnúť silné heslo</translation>
 <translation id="6696046606263842994">Vyplňte heslo</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb
index 4aa42f8..4991ce7 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sl.xtb
@@ -6,6 +6,7 @@
 <translation id="2803478378562657435">Prikazovanje shranjenih gesel in možnosti za gesla</translation>
 <translation id="2903493209154104877">Naslovi</translation>
 <translation id="4092349052316400070">Izpolni naslov</translation>
+<translation id="5000422505195156897">Na voljo so predlogi za samodejno izpolnjevanje</translation>
 <translation id="5088366526685584589">Prikaz shranjenih naslovov</translation>
 <translation id="6393156038355142111">Predlagaj zapleteno geslo</translation>
 <translation id="6696046606263842994">Izpolni geslo</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sr.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sr.xtb
index 261ac37..854c9d8 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sr.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sr.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Адресе</translation>
 <translation id="4092349052316400070">Попуните поље за адресу</translation>
 <translation id="4660011489602794167">Прикажи тастатуру</translation>
+<translation id="5000422505195156897">Предлози за аутоматско попуњавање су доступни</translation>
 <translation id="5088366526685584589">Приказују се сачуване адресе</translation>
 <translation id="6393156038355142111">Предложи јаку лозинку</translation>
 <translation id="6696046606263842994">Попуните поље за лозинку</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sv.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sv.xtb
index 0904a1d..7e709f7 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sv.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sv.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Adresser</translation>
 <translation id="4092349052316400070">Fyll i adress</translation>
 <translation id="4660011489602794167">Visa tangentbord</translation>
+<translation id="5000422505195156897">Det finns tillgängliga förslag från autofyll</translation>
 <translation id="5088366526685584589">Visa sparade adresser</translation>
 <translation id="6393156038355142111">Föreslå ett starkt lösenord</translation>
 <translation id="6696046606263842994">Fyll i lösenord</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sw.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sw.xtb
index 68ee00e..2a1a826 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sw.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_sw.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Anwani</translation>
 <translation id="4092349052316400070">Jaza anwani</translation>
 <translation id="4660011489602794167">Onyesha kibodi</translation>
+<translation id="5000422505195156897">Mapendekezo ya kujaza kiotomatiki yanapatikana</translation>
 <translation id="5088366526685584589">Inaonyesha anwani zilizohifadhiwa</translation>
 <translation id="6393156038355142111">Pendekeza nenosiri thabiti</translation>
 <translation id="6696046606263842994">Jaza nenosiri</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_te.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_te.xtb
index 5019772..f87c1aad 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_te.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_te.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">చిరునామాలు</translation>
 <translation id="4092349052316400070">చిరునామాను పూరించండి</translation>
 <translation id="4660011489602794167">కీబోర్డ్‌ను చూపు</translation>
+<translation id="5000422505195156897">ఆటోఫిల్ సూచనలు అందుబాటులో ఉన్నాయి</translation>
 <translation id="5088366526685584589">సేవ్ చేసిన చిరునామాలను చూపుతోంది</translation>
 <translation id="6393156038355142111">శక్తివంతమైన పాస్‌వర్డ్‌ని సూచించు</translation>
 <translation id="6696046606263842994">పాస్‌వర్డ్‌ను పూరించండి</translation>
diff --git a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_uk.xtb b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_uk.xtb
index f9db08c..09e62bc 100644
--- a/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_uk.xtb
+++ b/chrome/android/features/keyboard_accessory/internal/java/strings/translations/android_keyboard_accessory_strings_uk.xtb
@@ -7,6 +7,7 @@
 <translation id="2903493209154104877">Адреси</translation>
 <translation id="4092349052316400070">Введіть адресу</translation>
 <translation id="4660011489602794167">Показати клавіатуру</translation>
+<translation id="5000422505195156897">Доступні пропозиції автозаповнення</translation>
 <translation id="5088366526685584589">Показано збережені адреси</translation>
 <translation id="6393156038355142111">Запропонувати надійний пароль</translation>
 <translation id="6696046606263842994">Введіть пароль</translation>
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutPerfTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutPerfTest.java
index 70ab0918..c2c0ec8 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutPerfTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutPerfTest.java
@@ -106,6 +106,12 @@
             mTabNumCap = 0;
         }
         assertTrue(FeatureUtilities.isTabToGtsAnimationEnabled());
+
+        CriteriaHelper.pollUiThread(Criteria.equals(true,
+                mActivityTestRule.getActivity()
+                        .getTabModelSelector()
+                        .getTabModelFilterProvider()
+                        .getCurrentTabModelFilter()::isTabModelRestored));
     }
 
     @Test
diff --git a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
index 4501645..1757506 100644
--- a/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
+++ b/chrome/android/features/start_surface/internal/javatests/src/org/chromium/chrome/features/start_surface/StartSurfaceLayoutTest.java
@@ -4,6 +4,10 @@
 
 package org.chromium.chrome.features.start_surface;
 
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.action.ViewActions.click;
+import static android.support.test.espresso.matcher.ViewMatchers.withId;
+
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertNotEquals;
 import static org.junit.Assert.assertTrue;
@@ -17,15 +21,15 @@
 import android.graphics.Bitmap;
 import android.os.Build;
 import android.provider.Settings;
+import android.support.annotation.Nullable;
 import android.support.test.InstrumentationRegistry;
-import android.support.test.espresso.Espresso;
-import android.support.test.espresso.action.ViewActions;
+import android.support.test.espresso.NoMatchingViewException;
+import android.support.test.espresso.ViewAssertion;
 import android.support.test.espresso.contrib.RecyclerViewActions;
-import android.support.test.espresso.matcher.ViewMatchers;
 import android.support.test.filters.MediumTest;
+import android.support.v7.widget.RecyclerView;
 import android.text.TextUtils;
-
-import androidx.annotation.Nullable;
+import android.view.View;
 
 import org.junit.Assert;
 import org.junit.Before;
@@ -75,7 +79,6 @@
         "force-fieldtrials=Study/Group"})
 @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
 public class StartSurfaceLayoutTest {
-    private static final String TAG = "SSLayoutTest";
     private static final String BASE_PARAMS = "force-fieldtrial-params="
             + "Study.Group:soft-cleanup-delay/0/cleanup-delay/0/skip-slow-zooming/false"
             + "/zooming-min-sdk-version/19/zooming-min-memory-mb/512";
@@ -96,6 +99,7 @@
     @Before
     public void setUp() throws InterruptedException {
         FeatureUtilities.setGridTabSwitcherEnabledForTesting(true);
+
         EmbeddedTestServer testServer =
                 EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext());
         mActivityTestRule.startMainActivityFromLauncher();
@@ -113,6 +117,12 @@
 
         mActivityTestRule.getActivity().getTabContentManager().setCaptureMinRequestTimeForTesting(
                 0);
+
+        CriteriaHelper.pollUiThread(Criteria.equals(true,
+                mActivityTestRule.getActivity()
+                        .getTabModelSelector()
+                        .getTabModelFilterProvider()
+                        .getCurrentTabModelFilter()::isTabModelRestored));
     }
 
     @Test
@@ -340,8 +350,9 @@
             if (mActivityTestRule.getActivity()
                             .getTabContentManager()
                             .getPendingReadbacksForTesting()
-                    > 0)
+                    > 0) {
                 break;
+            }
 
             // Restart Chrome.
             // Although we're destroying the activity, the Application will still live on since its
@@ -415,9 +426,8 @@
                 waitForCaptureRateControl();
             }
             int count = getCaptureCount();
-            Espresso.onView(ViewMatchers.withId(org.chromium.chrome.tab_ui.R.id.tab_list_view))
-                    .perform(RecyclerViewActions.actionOnItemAtPosition(
-                            targetIndex, ViewActions.click()));
+            onView(withId(org.chromium.chrome.tab_ui.R.id.tab_list_view))
+                    .perform(RecyclerViewActions.actionOnItemAtPosition(targetIndex, click()));
             CriteriaHelper.pollUiThread(() -> {
                 boolean doneHiding =
                         !mActivityTestRule.getActivity().getLayoutManager().overviewVisible();
@@ -532,14 +542,66 @@
         Assert.assertEquals(0, mAllBitmaps.size() - count);
     }
 
+    @Test
+    @MediumTest
+    @CommandLineFlags.Add({BASE_PARAMS})
+    // clang-format off
+    @DisabledTest(message = "http://crbug/1005865 - Test was previously flaky but only on bots."
+            + "Was not locally reproducible. Disabling until verified that it's deflaked on bots.")
+    public void testIncognitoEnterGts() throws Exception {
+        // clang-format on
+        mActivityTestRule.newIncognitoTabFromMenu();
+        TestThreadUtils.runOnUiThreadBlocking(
+                () -> mActivityTestRule.getActivity().getLayoutManager().showOverview(false));
+        CriteriaHelper.pollInstrumentationThread(
+                () -> mActivityTestRule.getActivity().getLayoutManager().overviewVisible());
+
+        onView(withId(org.chromium.chrome.tab_ui.R.id.tab_list_view))
+                .check(TabCountAssertion.havingTabCount(1));
+
+        onView(withId(org.chromium.chrome.tab_ui.R.id.tab_list_view))
+                .perform(RecyclerViewActions.actionOnItemAtPosition(0, click()));
+        CriteriaHelper.pollInstrumentationThread(
+                () -> !mActivityTestRule.getActivity().getLayoutManager().overviewVisible());
+
+        TestThreadUtils.runOnUiThreadBlocking(
+                () -> mActivityTestRule.getActivity().getLayoutManager().showOverview(false));
+        CriteriaHelper.pollInstrumentationThread(
+                () -> mActivityTestRule.getActivity().getLayoutManager().overviewVisible());
+
+        onView(withId(org.chromium.chrome.tab_ui.R.id.tab_list_view))
+                .check(TabCountAssertion.havingTabCount(1));
+    }
+
+    private static class TabCountAssertion implements ViewAssertion {
+        private int mExpectedCount;
+
+        public static TabCountAssertion havingTabCount(int tabCount) {
+            return new TabCountAssertion(tabCount);
+        }
+
+        public TabCountAssertion(int expectedCount) {
+            mExpectedCount = expectedCount;
+        }
+
+        @Override
+        public void check(View view, NoMatchingViewException noMatchException) {
+            if (noMatchException != null) throw noMatchException;
+
+            RecyclerView.Adapter adapter = ((RecyclerView) view).getAdapter();
+            assertEquals(mExpectedCount, adapter.getItemCount());
+        }
+    }
+
     private void enterGTS() throws InterruptedException {
         Tab currentTab = mActivityTestRule.getActivity().getTabModelSelector().getCurrentTab();
         // Native tabs need to be invalidated first to trigger thumbnail taking, so skip them.
         boolean checkThumbnail = !currentTab.isNativePage();
 
-        if (checkThumbnail)
+        if (checkThumbnail) {
             mActivityTestRule.getActivity().getTabContentManager().removeTabThumbnail(
                     currentTab.getId());
+        }
 
         int count = getCaptureCount();
         waitForCaptureRateControl();
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter.java
index 89eaf472..9657a526 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilter.java
@@ -101,7 +101,7 @@
      * group.
      */
     private class TabGroup {
-        private final static int INVALID_GROUP_ID = -1;
+        private static final int INVALID_GROUP_ID = -1;
         private final Set<Integer> mTabIds;
         private int mLastShownTabId;
         private int mGroupId;
@@ -174,7 +174,6 @@
     private int mActualGroupCount;
     private Tab mAbsentSelectedTab;
     private boolean mShouldRecordUma = true;
-    private boolean mTabRestoreCompleted;
     private boolean mIsResetting;
 
     public TabGroupModelFilter(TabModel tabModel) {
@@ -188,7 +187,6 @@
                 RecordHistogram.recordCountHistogram("TabGroups.UserGroupCount", mActualGroupCount);
                 Tab currentTab = TabModelUtils.getCurrentTab(getTabModel());
                 if (currentTab != null) recordSessionsCount(currentTab);
-                mTabRestoreCompleted = true;
                 removeObserver(this);
             }
         });
@@ -654,7 +652,7 @@
     public void didMoveTab(Tab tab, int newIndex, int curIndex) {
         // Ignore didMoveTab calls in tab restoring stage. For incognito mode, bypass this check
         // since there is no restoring stage.
-        if (!mTabRestoreCompleted && !isIncognito()) return;
+        if (!isTabModelRestored()) return;
         // Need to cache the flags before resetting the internal data map.
         boolean isMergeTabToGroup = isMergeTabToGroup(tab);
         boolean isMoveTabOutOfGroup = isMoveTabOutOfGroup(tab);
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
index 3123116..62631c0 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabListMediator.java
@@ -739,7 +739,13 @@
      * The selected border should re-appear in the final fading-in stage.
      */
     void prepareOverview() {
-        if (!FeatureUtilities.isTabToGtsAnimationEnabled()) return;
+        if (!FeatureUtilities.isTabToGtsAnimationEnabled()
+                || !mTabModelSelector.getTabModelFilterProvider()
+                            .getCurrentTabModelFilter()
+                            .isTabModelRestored()) {
+            return;
+        }
+
         assert mVisible;
         int count = 0;
         for (int i = 0; i < mModel.size(); i++) {
@@ -816,7 +822,7 @@
     }
 
     /**
-     * @see GridTabSwitcherMediator.ResetHandler#softCleanup
+     * @see TabSwitcherMediator.ResetHandler#softCleanup
      */
     void softCleanup() {
         assert !mVisible;
diff --git a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
index 8d630fd..ab3f495 100644
--- a/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
+++ b/chrome/android/features/tab_ui/java/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediator.java
@@ -119,7 +119,7 @@
     private boolean mShouldIgnoreNextSelect;
 
     private int mModelIndexWhenShown;
-    private int mTabIdwhenShown;
+    private int mTabIdWhenShown;
     private int mIndexInNewModelWhenSwitched;
     private boolean mIsSelectingInTabSwitcher;
 
@@ -225,6 +225,15 @@
                     onTabSelecting(tab.getId());
                 }
             }
+
+            @Override
+            public void restoreCompleted() {
+                if (!mContainerViewModel.get(IS_VISIBLE)) return;
+
+                mResetHandler.resetWithTabList(
+                        mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter(),
+                        false, mShowTabsInMruOrder);
+            }
         };
 
         mFullscreenManager.addListener(mFullscreenListener);
@@ -335,7 +344,7 @@
         Tab fromTab = TabModelUtils.getTabById(mTabModelSelector.getCurrentModel(), lastId);
         assert fromTab != null;
         if (mModelIndexWhenShown == mTabModelSelector.getCurrentModelIndex()) {
-            if (tab.getId() == mTabIdwhenShown) {
+            if (tab.getId() == mTabIdWhenShown) {
                 RecordUserAction.record("MobileTabReturnedToCurrentTab");
                 RecordHistogram.recordSparseHistogram(
                         "Tabs.TabOffsetOfSwitch." + TabSwitcherCoordinator.COMPONENT_NAME, 0);
@@ -411,7 +420,10 @@
         mHandler.removeCallbacks(mSoftClearTabListRunnable);
         mHandler.removeCallbacks(mClearTabListRunnable);
         boolean quick = false;
-        if (FeatureUtilities.isTabToGtsAnimationEnabled()) {
+        if (FeatureUtilities.isTabToGtsAnimationEnabled()
+                && mTabModelSelector.getTabModelFilterProvider()
+                           .getCurrentTabModelFilter()
+                           .isTabModelRestored()) {
             quick = mResetHandler.resetWithTabList(
                     mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter(), false,
                     mShowTabsInMruOrder);
@@ -429,13 +441,17 @@
 
     @Override
     public void showOverview(boolean animate) {
-        mResetHandler.resetWithTabList(
-                mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter(),
-                FeatureUtilities.isTabToGtsAnimationEnabled(), mShowTabsInMruOrder);
+        if (mTabModelSelector.getTabModelFilterProvider()
+                        .getCurrentTabModelFilter()
+                        .isTabModelRestored()) {
+            mResetHandler.resetWithTabList(
+                    mTabModelSelector.getTabModelFilterProvider().getCurrentTabModelFilter(),
+                    FeatureUtilities.isTabToGtsAnimationEnabled(), mShowTabsInMruOrder);
+        }
         if (!animate) mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, false);
         setVisibility(true);
         mModelIndexWhenShown = mTabModelSelector.getCurrentModelIndex();
-        mTabIdwhenShown = mTabModelSelector.getCurrentTabId();
+        mTabIdWhenShown = mTabModelSelector.getCurrentTabId();
         mContainerViewModel.set(ANIMATE_VISIBILITY_CHANGES, true);
         if (mIphProvider != null) {
             mIphProvider.maybeShowIPH(mTabModelSelector.isIncognitoSelected());
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
index 0458de8..5ffe4a3 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_fil.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">Pumili ng mga tab</translation>
 <translation id="6615455863669487791">Ipakita sa akin</translation>
 <translation id="6803423358608456383">Nakabukas ang mga binuksang tab nang kalahati ang taas</translation>
+<translation id="6840760312327750441">Sa mga tab ng grupo, pindutin nang matagal ang isang tab. Pagkatapos, i-drag ito sa isa pang tab.</translation>
 <translation id="7559245342362162951">Ipakita ang mga tab ng grupo sa fullscreen grid</translation>
 <translation id="8582216581279205169">Nakabukas ang mga binuksang tab nang buo ang taas</translation>
 <translation id="9150694013019234766">Magpalipat-lipat sa mga tab sa iyong grupo ng tab malapit sa ibaba ng screen</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
index bac9c7b..7520c74 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_hi.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">टैब चुनें</translation>
 <translation id="6615455863669487791">मुझे दिखाएं</translation>
 <translation id="6803423358608456383">आधी स्क्रीन पर खुले टैब</translation>
+<translation id="6840760312327750441">टैब को ग्रुप करने के लिए, टैब को दबाकर रखें. इसके बाद, इसे दूसरे टैब पर खींचें और छोड़ें.</translation>
 <translation id="7559245342362162951">समूह के टैब फ़ुलस्क्रीन ग्रिड में दिखाएं</translation>
 <translation id="8582216581279205169">पूरी स्क्रीन पर खुले टैब</translation>
 <translation id="9150694013019234766">स्क्रीन के सबसे नीचे दिए गए अपने टैब समूह में एक से दूसरे टैब पर जाएं</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
index 63f9bd3e..b07408c 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_iw.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">בחירת כרטיסיות</translation>
 <translation id="6615455863669487791">הראה לי</translation>
 <translation id="6803423358608456383">כרטיסיות שנפתחו בחצי מהגובה</translation>
+<translation id="6840760312327750441">כדי לקבץ כרטיסיות, יש ללחוץ לחיצה ארוכה על כרטיסייה. בזמן הלחיצה, יש לגרור אותה אל כרטיסייה אחרת.</translation>
 <translation id="7559245342362162951">הצגת כרטיסיות הקבוצה ברשת מסך מלא</translation>
 <translation id="8582216581279205169">כרטיסיות שנפתחו בגובה מלא</translation>
 <translation id="9150694013019234766">מעבר בין כרטיסיות בקבוצת הכרטיסיות שבחלק התחתון של המסך</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
index 60ba5ca..0731272 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_kn.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">ಟ್ಯಾಬ್‌ಗಳನ್ನು ಆಯ್ಕೆಮಾಡಿ</translation>
 <translation id="6615455863669487791">ನನಗೆ ತೋರಿಸಿ</translation>
 <translation id="6803423358608456383">ಅರ್ಧ ಎತ್ತರದಲ್ಲಿ ತೆರೆದಿರುವ ಟ್ಯಾಬ್‌ಗಳು</translation>
+<translation id="6840760312327750441">ಟ್ಯಾಬ್‌ಗಳನ್ನು ಗುಂಪು ಮಾಡಲು , ಟ್ಯಾಬ್ ಒಂದನ್ನು ಸ್ಪರ್ಶಿಸಿ ಮತ್ತು ಹೋಲ್ಡ್‌ ಮಾಡಿ. ನಂತರ, ಅದನ್ನು ಮತ್ತೊಂದು ಟ್ಯಾಬ್‌ನ ಮೇಲೆ ಡ್ರ್ಯಾಗ್ ಮಾಡಿ.</translation>
 <translation id="7559245342362162951">ಗುಂಪಿನ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಪೂರ್ಣ ಸ್ಕ್ರೀನ್‌ ಗ್ರಿಡ್‌ನಲ್ಲಿ ತೋರಿಸಿ</translation>
 <translation id="8582216581279205169">ಪೂರ್ಣ ಎತ್ತರದಲ್ಲಿ ಟ್ಯಾಬ್‌ಗಳನ್ನು ತೆರೆಯಲಾಗಿದೆ</translation>
 <translation id="9150694013019234766">ಸ್ಕ್ರೀನ್‌ನ ಕೆಳಭಾಗದಲ್ಲಿರುವ ನಿಮ್ಮ ಟ್ಯಾಬ್ ಗುಂಪಿನಲ್ಲಿರುವ ಟ್ಯಾಬ್‌ಗಳ ನಡುವೆ ಬದಲಾಯಿಸಿ</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
index 2ed1eac5..25ad254d 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_ta.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">தாவல்களைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="6615455863669487791">எனக்கு காண்பி</translation>
 <translation id="6803423358608456383">அரையளவு உயரத்தில் திறந்துள்ள தாவல்கள்</translation>
+<translation id="6840760312327750441">தாவல்களைக் குழுவாக்க தாவலைத் தொட்டுப் பிடித்திருக்கவும். பிறகு அதை மற்றொரு தாவலுக்கு இழுத்துச்சென்று விடவும்.</translation>
 <translation id="7559245342362162951">குழு தாவல்களை முழுத்திரை கட்டத்தில் காட்டு</translation>
 <translation id="8582216581279205169">முழு உயரத்தில் திறந்துள்ள தாவல்கள்</translation>
 <translation id="9150694013019234766">திரையின் கீழ்ப்பகுதிக்கு அருகில் உங்கள் தாவல் குழுவிலுள்ள தாவல்களுக்கு இடையே மாறலாம்</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
index 06536a5..0727bf1 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_vi.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">Chọn các tab</translation>
 <translation id="6615455863669487791">Hiển thị cho tôi</translation>
 <translation id="6803423358608456383">Các tab đã mở ở nửa dưới của màn hình</translation>
+<translation id="6840760312327750441">Để nhóm các tab, hãy chạm và giữ một tab. Sau đó, kéo tab đó lên một tab khác.</translation>
 <translation id="7559245342362162951">Hiển thị các tab của nhóm trong lưới toàn màn hình</translation>
 <translation id="8582216581279205169">Các tab đã mở trên toàn màn hình</translation>
 <translation id="9150694013019234766">Chuyển đổi giữa các tab trong nhóm tab ở gần cuối màn hình</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
index b871d136..fdb9195 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-CN.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">选择标签页</translation>
 <translation id="6615455863669487791">显示图标</translation>
 <translation id="6803423358608456383">已半屏打开“已打开的标签页”工作表</translation>
+<translation id="6840760312327750441">要将标签页分组,请轻触并按住某个标签页。然后,将该标签页拖动到另一个标签页上。</translation>
 <translation id="7559245342362162951">以全屏网格状视图显示组中的标签页</translation>
 <translation id="8582216581279205169">已全屏打开“已打开的标签页”工作表</translation>
 <translation id="9150694013019234766">在屏幕底部附近的标签页组中切换标签页</translation>
diff --git a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
index 8cc2902f..63a58659 100644
--- a/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
+++ b/chrome/android/features/tab_ui/java/strings/translations/android_chrome_tab_ui_strings_zh-TW.xtb
@@ -18,6 +18,7 @@
 <translation id="6193448654517602979">選取分頁</translation>
 <translation id="6615455863669487791">顯示</translation>
 <translation id="6803423358608456383">已在畫面下半部顯示「開啟的分頁」工作表</translation>
+<translation id="6840760312327750441">如要將分頁加入群組,請輕觸並按住分頁,然後將其拖曳到其他分頁上。</translation>
 <translation id="7559245342362162951">以全螢幕格狀檢視顯示群組的分頁</translation>
 <translation id="8582216581279205169">已使用整個畫面顯示「開啟的分頁」工作表</translation>
 <translation id="9150694013019234766">在靠近畫面底部的分頁群組中切換分頁</translation>
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilterUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilterUnitTest.java
index 8d15da7..7233aa9 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilterUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_groups/TabGroupModelFilterUnitTest.java
@@ -272,6 +272,23 @@
     }
 
     @Test
+    // TODO(mattsimmons): This is actually testing behavior of the superclass but there's no unit
+    //  tests for the superclass today. If one ever exists, this should move to that test.
+    public void isTabModelRestored() {
+        setupTabGroupModelFilter(false, false);
+        assertThat(mTabGroupModelFilter.isTabModelRestored(), equalTo(false));
+
+        setupTabGroupModelFilter(true, false);
+        assertThat(mTabGroupModelFilter.isTabModelRestored(), equalTo(true));
+
+        setupTabGroupModelFilter(false, true);
+        assertThat(mTabGroupModelFilter.isTabModelRestored(), equalTo(true));
+
+        setupTabGroupModelFilter(true, true);
+        assertThat(mTabGroupModelFilter.isTabModelRestored(), equalTo(true));
+    }
+
+    @Test
     public void addTab_ToExistingGroup() {
         Tab newTab = prepareTab(NEW_TAB_ID, NEW_TAB_ID, TAB1_ID);
         doReturn(TabLaunchType.FROM_CHROME_UI).when(newTab).getLaunchType();
diff --git a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java
index 10771ef..63a1567 100644
--- a/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java
+++ b/chrome/android/features/tab_ui/junit/src/org/chromium/chrome/browser/tasks/tab_management/TabSwitcherMediatorUnitTest.java
@@ -434,6 +434,60 @@
     }
 
     @Test
+    public void updatesResetHandlerOnRestoreCompleted() {
+        initAndAssertAllProperties();
+        mMediator.showOverview(true);
+        assertThat(mModel.get(TabListContainerProperties.IS_VISIBLE), equalTo(true));
+
+        mTabModelObserverCaptor.getValue().restoreCompleted();
+
+        // MRU will be false unless the start surface is enabled.
+        verify(mResetHandler).resetWithTabList(mTabModelFilter, false, false);
+    }
+
+    @Test
+    public void showOverviewDoesNotUpdateResetHandlerBeforeRestoreCompleted() {
+        initAndAssertAllProperties();
+        doReturn(false).when(mTabModelFilter).isTabModelRestored();
+        mMediator.showOverview(true);
+
+        // MRU will be false unless the start surface is enabled.
+        verify(mResetHandler, never()).resetWithTabList(mTabModelFilter, true, false);
+    }
+
+    @Test
+    public void prepareOverviewDoesNotUpdateResetHandlerBeforeRestoreCompleted() {
+        initAndAssertAllProperties();
+        doReturn(false).when(mTabModelFilter).isTabModelRestored();
+        mMediator.prepareOverview();
+
+        // MRU will be false unless the start surface is enabled.
+        verify(mResetHandler, never()).resetWithTabList(mTabModelFilter, false, false);
+    }
+
+    @Test
+    public void showOverviewUpdatesResetHandlerAfterRestoreCompleted() {
+        initAndAssertAllProperties();
+        doReturn(true).when(mTabModelFilter).isTabModelRestored();
+
+        mMediator.showOverview(true);
+
+        // MRU will be false unless the start surface is enabled.
+        verify(mResetHandler).resetWithTabList(mTabModelFilter, true, false);
+    }
+
+    @Test
+    public void prepareOverviewUpdatesResetHandlerAfterRestoreCompleted() {
+        initAndAssertAllProperties();
+        doReturn(true).when(mTabModelFilter).isTabModelRestored();
+
+        mMediator.prepareOverview();
+
+        // MRU will be false unless the start surface is enabled.
+        verify(mResetHandler).resetWithTabList(mTabModelFilter, false, false);
+    }
+
+    @Test
     @DisableFeatures(ChromeFeatureList.TAB_GROUPS_UI_IMPROVEMENTS_ANDROID)
     public void openDialogButton_FlagDisabled() {
         FeatureUtilities.setTabGroupsAndroidEnabledForTesting(false);
diff --git a/chrome/android/features/vr/java/src/org/chromium/chrome/browser/vr/VrShell.java b/chrome/android/features/vr/java/src/org/chromium/chrome/browser/vr/VrShell.java
index 980432c..36cf37b3 100644
--- a/chrome/android/features/vr/java/src/org/chromium/chrome/browser/vr/VrShell.java
+++ b/chrome/android/features/vr/java/src/org/chromium/chrome/browser/vr/VrShell.java
@@ -227,7 +227,7 @@
         mNonVrUiWidgetFactory = UiWidgetFactory.getInstance();
         UiWidgetFactory.setInstance(new VrUiWidgetFactory(this, mActivity.getModalDialogManager()));
 
-        mTabRedirectHandler = new TabRedirectHandler(mActivity) {
+        mTabRedirectHandler = new TabRedirectHandler() {
             @Override
             public boolean shouldStayInChrome(boolean hasExternalProtocol) {
                 return !hasExternalProtocol;
@@ -420,7 +420,7 @@
 
         boolean hasOrCanRequestRecordAudioPermission =
                 hasRecordAudioPermission() || canRequestRecordAudioPermission();
-        boolean supportsRecognition = FeatureUtilities.isRecognitionIntentPresent(mActivity, false);
+        boolean supportsRecognition = FeatureUtilities.isRecognitionIntentPresent(false);
         mNativeVrShell = VrShellJni.get().init(VrShell.this, mDelegate, forWebVr,
                 !mVrBrowsingEnabled, hasOrCanRequestRecordAudioPermission && supportsRecognition,
                 getGvrApi().getNativeGvrContext(), mReprojectedRendering, displayWidthMeters,
@@ -713,8 +713,9 @@
 
     @CalledByNative
     public void dialogSurfaceCreated(Surface surface) {
-        if (mVrBrowsingEnabled && mVrUiViewContainer != null)
+        if (mVrBrowsingEnabled && mVrUiViewContainer != null) {
             mVrUiViewContainer.setSurface(surface);
+        }
     }
 
     @Override
@@ -909,8 +910,9 @@
     }
 
     public void setWebVrModeEnabled(boolean enabled) {
-        if (mNativeVrShell != 0)
+        if (mNativeVrShell != 0) {
             VrShellJni.get().setWebVrMode(mNativeVrShell, VrShell.this, enabled);
+        }
         if (!enabled) {
             mContentVrWindowAndroid.setVSyncPaused(false);
             mPendingVSyncPause = false;
@@ -957,8 +959,9 @@
         if (topContentOffset != 0) return;
         // Wait until a new frame is definitely available.
         mActivity.getCompositorViewHolder().getCompositorView().surfaceRedrawNeededAsync(() -> {
-            if (mNativeVrShell != 0)
+            if (mNativeVrShell != 0) {
                 VrShellJni.get().resumeContentRendering(mNativeVrShell, VrShell.this);
+            }
         });
     }
 
@@ -1029,8 +1032,9 @@
     @CalledByNative
     private void onExitVrRequestResult(@UiUnsupportedMode int reason, boolean shouldExit) {
         if (shouldExit) {
-            if (mNativeVrShell != 0)
+            if (mNativeVrShell != 0) {
                 VrShellJni.get().logUnsupportedModeUserMetric(mNativeVrShell, VrShell.this, reason);
+            }
         }
         mDelegate.onExitVrRequestResult(shouldExit);
     }
@@ -1163,21 +1167,24 @@
 
     @Override
     public void onVrViewEmpty() {
-        if (mNativeVrShell != 0)
+        if (mNativeVrShell != 0) {
             VrShellJni.get().onOverlayTextureEmptyChanged(mNativeVrShell, VrShell.this, true);
+        }
     }
 
     @Override
     public void onVrViewNonEmpty() {
-        if (mNativeVrShell != 0)
+        if (mNativeVrShell != 0) {
             VrShellJni.get().onOverlayTextureEmptyChanged(mNativeVrShell, VrShell.this, false);
+        }
     }
 
     @Override
     protected void onSizeChanged(int width, int height, int oldWidth, int oldHeight) {
         super.onSizeChanged(width, height, oldWidth, oldHeight);
-        if (width > height)
+        if (width > height) {
             VrModuleProvider.getDelegate().removeBlackOverlayView(mActivity, true /* animate */);
+        }
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
index fec0e67..21cfcf3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ChromeActivity.java
@@ -280,6 +280,7 @@
     private ContextualSearchManager mContextualSearchManager;
     protected ReaderModeManager mReaderModeManager;
     private SnackbarManager mSnackbarManager;
+    private SnackbarManager mBottomSheetSnackbarManager;
     @Nullable
     private ToolbarManager mToolbarManager;
     private BottomSheetController mBottomSheetController;
@@ -1344,8 +1345,7 @@
         boolean useBottomSheetContainer = mBottomSheetController != null
                 && mBottomSheetController.getBottomSheet().isSheetOpen()
                 && !mBottomSheetController.getBottomSheet().isHiding();
-        return useBottomSheetContainer ? mBottomSheetController.getSnackbarManager()
-                                       : mSnackbarManager;
+        return useBottomSheetContainer ? mBottomSheetSnackbarManager : mSnackbarManager;
     }
 
     @Override
@@ -1461,6 +1461,9 @@
         mBottomSheet.init(coordinator, getActivityTabProvider(), getFullscreenManager(),
                 getWindow(), getWindowAndroid().getKeyboardDelegate());
 
+        mBottomSheetSnackbarManager = new SnackbarManager(
+                this, mBottomSheet.findViewById(R.id.bottom_sheet_snackbar_container));
+
         mBottomSheet.addObserver(new EmptyBottomSheetObserver() {
             @Override
             public void onSheetOpened(int reason) {
@@ -1471,11 +1474,16 @@
             public void onSheetClosed(int reason) {
                 removeViewObscuringAllTabs(mBottomSheet);
             }
+
+            @Override
+            public void onSheetOffsetChanged(float heightFraction, float offsetPx) {
+                mBottomSheetSnackbarManager.dismissAllSnackbars();
+            }
         });
 
         ((BottomContainer) findViewById(R.id.bottom_container)).setBottomSheet(mBottomSheet);
 
-        mBottomSheetController = new BottomSheetController(this, getLifecycleDispatcher(),
+        mBottomSheetController = new BottomSheetController(getLifecycleDispatcher(),
                 mActivityTabProvider, mScrimView, mBottomSheet,
                 getCompositorViewHolder().getLayoutManager().getOverlayPanelManager());
     }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java b/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
index eab4d29..2e916c9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/DefaultBrowserInfo.java
@@ -16,6 +16,7 @@
 
 import org.chromium.base.BuildInfo;
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.library_loader.LibraryProcessType;
 import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.base.task.AsyncTask;
@@ -96,7 +97,7 @@
                                 context, BuildInfo.getInstance().hostPackageLabel));
 
                         PackageManager pm = context.getPackageManager();
-                        ResolveInfo info = getResolveInfoForViewIntent(pm);
+                        ResolveInfo info = getResolveInfoForViewIntent();
 
                         // Caches whether Chrome is set as a default browser on the device.
                         boolean isDefault = info != null && info.match != 0
@@ -128,24 +129,15 @@
 
     /**
      * @return Default ResolveInfo to handle a VIEW intent for a url.
-     * @param pm The PackageManager of current context.
      */
-    private static ResolveInfo getResolveInfoForViewIntent(PackageManager pm) {
+    private static ResolveInfo getResolveInfoForViewIntent() {
         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(SAMPLE_URL));
-        try {
-            return pm.resolveActivity(intent, 0);
-        } catch (NullPointerException e) {
-            return null;
-        }
+        return PackageManagerUtils.resolveActivity(intent, 0);
     }
 
-    private static List<ResolveInfo> getResolveInfoListForViewIntent(PackageManager pm) {
+    private static List<ResolveInfo> getResolveInfoListForViewIntent() {
         Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(SAMPLE_URL));
-        try {
-            return pm.queryIntentActivities(intent, PackageManager.MATCH_ALL);
-        } catch (NullPointerException ex) {
-            return null;
-        }
+        return PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_ALL);
     }
 
     /**
@@ -180,12 +172,10 @@
                 protected DefaultInfo doInBackground() {
                     Context context = ContextUtils.getApplicationContext();
 
-                    PackageManager pm = context.getPackageManager();
-
                     DefaultInfo info = new DefaultInfo();
 
                     // Query the default handler first.
-                    ResolveInfo defaultRi = getResolveInfoForViewIntent(pm);
+                    ResolveInfo defaultRi = getResolveInfoForViewIntent();
                     if (defaultRi != null && defaultRi.match != 0) {
                         info.hasDefault = true;
                         info.isChromeDefault = isSamePackage(context, defaultRi);
@@ -194,7 +184,7 @@
 
                     // Query all other intent handlers.
                     Set<String> uniquePackages = new HashSet<>();
-                    List<ResolveInfo> ris = getResolveInfoListForViewIntent(pm);
+                    List<ResolveInfo> ris = getResolveInfoListForViewIntent();
                     if (ris != null) {
                         for (ResolveInfo ri : ris) {
                             String packageName = ri.activityInfo.applicationInfo.packageName;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
index 9acd56b..88296db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/LaunchIntentDispatcher.java
@@ -16,9 +16,15 @@
 import android.os.Bundle;
 import android.os.StrictMode;
 
+import androidx.annotation.IntDef;
+import androidx.browser.customtabs.CustomTabsIntent;
+import androidx.browser.customtabs.CustomTabsSessionToken;
+import androidx.browser.customtabs.TrustedWebUtils;
+
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.CommandLine;
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.StrictModeContext;
 import org.chromium.base.metrics.CachedMetrics;
 import org.chromium.chrome.browser.browserservices.BrowserServicesIntentDataProvider.CustomTabsUiType;
@@ -48,11 +54,6 @@
 import java.lang.annotation.RetentionPolicy;
 import java.util.UUID;
 
-import androidx.annotation.IntDef;
-import androidx.browser.customtabs.CustomTabsIntent;
-import androidx.browser.customtabs.CustomTabsSessionToken;
-import androidx.browser.customtabs.TrustedWebUtils;
-
 /**
  * Dispatches incoming intents to the appropriate activity based on the current configuration and
  * Intent fired.
@@ -211,8 +212,7 @@
 
         try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
             int resolvers =
-                    ContextUtils.getApplicationContext()
-                            .getPackageManager()
+                    PackageManagerUtils
                             .queryIntentActivities(searchIntent, PackageManager.GET_RESOLVED_FILTER)
                             .size();
             if (resolvers == 0) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
index 3a47dcb..b976c3cd 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/bookmarks/BookmarkUtils.java
@@ -15,6 +15,7 @@
 
 import org.chromium.base.BuildInfo;
 import org.chromium.base.ContextUtils;
+import org.chromium.base.Log;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.metrics.RecordHistogram;
@@ -23,6 +24,7 @@
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.IntentHandler;
+import org.chromium.chrome.browser.bookmarks.BookmarkBridge.BookmarkItem;
 import org.chromium.chrome.browser.document.ChromeLauncherActivity;
 import org.chromium.chrome.browser.snackbar.Snackbar;
 import org.chromium.chrome.browser.snackbar.SnackbarManager;
@@ -42,6 +44,7 @@
 public class BookmarkUtils {
     private static final String PREF_LAST_USED_URL = "enhanced_bookmark_last_used_url";
     private static final String PREF_LAST_USED_PARENT = "enhanced_bookmark_last_used_parent_folder";
+    private static final String TAG = "BookmarkUtils";
 
     /**
      * If the tab has already been bookmarked, start {@link BookmarkEditActivity} for the
@@ -67,14 +70,8 @@
             return bookmarkId;
         }
 
-        BookmarkId parent = getLastUsedParent(activity);
-        if (parent == null || !bookmarkModel.doesBookmarkExist(parent)) {
-            parent = bookmarkModel.getDefaultFolder();
-        }
-
-        String url = tab.getOriginalUrl();
-        BookmarkId bookmarkId = bookmarkModel.addBookmark(parent,
-                bookmarkModel.getChildCount(parent), tab.getTitle(), url);
+        BookmarkId bookmarkId =
+                addBookmarkInternal(activity, bookmarkModel, tab.getTitle(), tab.getOriginalUrl());
 
         Snackbar snackbar = null;
         if (bookmarkId == null) {
@@ -127,12 +124,39 @@
      */
     public static BookmarkId addBookmarkSilently(
             Context context, BookmarkModel bookmarkModel, String title, String url) {
+        return addBookmarkInternal(context, bookmarkModel, title, url);
+    }
+
+    /**
+     * An internal version of {@link #addBookmarkSilently(Context, BookmarkModel, String, String)}.
+     * Will reset last used parent if it fails to add a bookmark
+     */
+    private static BookmarkId addBookmarkInternal(
+            Context context, BookmarkModel bookmarkModel, String title, String url) {
         BookmarkId parent = getLastUsedParent(context);
-        if (parent == null || !bookmarkModel.doesBookmarkExist(parent)) {
+        BookmarkItem parentItem = null;
+        if (parent != null) {
+            parentItem = bookmarkModel.getBookmarkById(parent);
+        }
+        if (parent == null || parentItem == null || parentItem.isManaged() || !parentItem.isFolder()
+                || !parentItem.isEditable()) {
             parent = bookmarkModel.getDefaultFolder();
         }
+        BookmarkId bookmarkId =
+                bookmarkModel.addBookmark(parent, bookmarkModel.getChildCount(parent), title, url);
 
-        return bookmarkModel.addBookmark(parent, bookmarkModel.getChildCount(parent), title, url);
+        // TODO(lazzzis): remove log after bookmark sync is fixed, crbug.com/986978
+        if (bookmarkId == null) {
+            Log.e(TAG,
+                    "Failed to add bookmarks: parentTypeAndId %s, defaultFolderTypeAndId %s, "
+                            + "mobileFolderTypeAndId %s, parentEditable Managed isFolder %s,",
+                    parent, bookmarkModel.getDefaultFolder(), bookmarkModel.getMobileFolderId(),
+                    parentItem == null ? "null"
+                                       : (parentItem.isEditable() + " " + parentItem.isManaged()
+                                               + " " + parentItem.isFolder()));
+            setLastUsedParent(context, bookmarkModel.getDefaultFolder());
+        }
+        return bookmarkId;
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java
index 034f0fc7..0efba7e3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/browserservices/permissiondelegation/NotificationPermissionUpdater.java
@@ -9,12 +9,12 @@
 import android.content.ComponentName;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.net.Uri;
 
 import androidx.annotation.WorkerThread;
 
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.task.PostTask;
 import org.chromium.chrome.browser.ChromeApplication;
 import org.chromium.chrome.browser.ChromeFeatureList;
@@ -41,14 +41,12 @@
     private static final String TAG = "TWANotifications";
 
     private final TrustedWebActivityPermissionManager mPermissionManager;
-    private final PackageManager mPackageManager;
     private final TrustedWebActivityClient mTrustedWebActivityClient;
 
     @Inject
     public NotificationPermissionUpdater(@Named(APP_CONTEXT) Context context,
             TrustedWebActivityPermissionManager permissionManager,
             TrustedWebActivityClient trustedWebActivityClient) {
-        mPackageManager = context.getPackageManager();
         mPermissionManager = permissionManager;
         mTrustedWebActivityClient = trustedWebActivityClient;
     }
@@ -141,7 +139,7 @@
 
         try (BrowserServicesMetrics.TimingMetric unused =
                      BrowserServicesMetrics.getBrowsableIntentResolutionTimingContext()) {
-            return mPackageManager.resolveActivity(browsableIntent, 0) != null;
+            return PackageManagerUtils.resolveActivity(browsableIntent, 0) != null;
         }
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
index 540f6e86..1a049de 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/compositor/bottombar/contextualsearch/ContextualSearchQuickActionControl.java
@@ -11,13 +11,13 @@
 import android.content.pm.ResolveInfo;
 import android.content.res.Resources;
 import android.graphics.drawable.Drawable;
-import android.os.StrictMode;
 import android.provider.Browser;
 import android.support.v4.graphics.drawable.DrawableCompat;
 import android.text.TextUtils;
 import android.widget.ImageView;
 
 import org.chromium.base.ApiCompatibilityUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity2;
@@ -232,21 +232,12 @@
 
         // If a default is set, PackageManager#resolveActivity() will return the
         // ResolveInfo for the default activity.
-        ResolveInfo possibleDefaultActivity = null;
-
-        // On KitKat, calling PackageManager#resolveActivity() causes disk reads and
-        // writes. Temporarily allow this while resolving the intent.
-        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
-        try {
-            possibleDefaultActivity = packageManager.resolveActivity(mIntent, 0);
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
+        ResolveInfo possibleDefaultActivity = PackageManagerUtils.resolveActivity(mIntent, 0);
 
         // PackageManager#queryIntentActivities() will return a list of activities that
         // can handle the intent, sorted from best to worst. If there are no matching
         // activities, an empty list is returned.
-        List<ResolveInfo> resolveInfoList = packageManager.queryIntentActivities(mIntent, 0);
+        List<ResolveInfo> resolveInfoList = PackageManagerUtils.queryIntentActivities(mIntent, 0);
 
         int numMatchingActivities = 0;
         ResolveInfo defaultActivityResolveInfo = null;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
index 0d068e6..439b00a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/contextualsearch/ContextualSearchManager.java
@@ -258,7 +258,7 @@
 
         mInProductHelp.setParentView(parentView);
 
-        mTabRedirectHandler = TabRedirectHandler.create(mActivity);
+        mTabRedirectHandler = TabRedirectHandler.create();
 
         mIsShowingPromo = false;
         mDidLogPromoOutcome = false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
index f5273d9..2fb2348 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/customtabs/CustomTabDelegateFactory.java
@@ -12,6 +12,7 @@
 import android.text.TextUtils;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.chrome.browser.ChromeActivity;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
@@ -121,20 +122,12 @@
          *         default handler, this method will return false.
          */
         private boolean hasDefaultHandler(Intent intent) {
-            try {
-                ResolveInfo info =
-                        mApplicationContext.getPackageManager().resolveActivity(intent, 0);
-                if (info != null) {
-                    final String chromePackage = mApplicationContext.getPackageName();
-                    // If a default handler is found and it is not chrome itself, fire the intent.
-                    if (info.match != 0 && !chromePackage.equals(info.activityInfo.packageName)) {
-                        return true;
-                    }
-                }
-            } catch (RuntimeException e) {
-                IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
-            }
-            return false;
+            ResolveInfo info = PackageManagerUtils.resolveActivity(intent, 0);
+            if (info == null) return false;
+
+            final String chromePackage = mApplicationContext.getPackageName();
+            // If a default handler is found and it is not chrome itself, fire the intent.
+            return info.match != 0 && !chromePackage.equals(info.activityInfo.packageName);
         }
 
         @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentUtils.java
index fd0e959..8f16f86 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/document/DocumentUtils.java
@@ -10,7 +10,6 @@
 import android.app.ActivityManager.RecentTaskInfo;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.net.Uri;
 import android.os.Build;
@@ -18,6 +17,7 @@
 import android.util.Log;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -99,11 +99,10 @@
     /**
      * Given an AppTask retrieves the task component name.
      * @param task The app task to use.
-     * @param pm The package manager to use for resolving intent.
      * @return Fully qualified component name name or null if we were not able to
      * determine it.
      */
-    public static String getTaskComponentName(AppTask task, PackageManager pm) {
+    public static String getTaskComponentName(AppTask task) {
         RecentTaskInfo info = getTaskInfoFromTask(task);
         if (info == null) return null;
 
@@ -113,10 +112,9 @@
         } else if (baseIntent.getComponent() != null) {
             return baseIntent.getComponent().getClassName();
         } else {
-            ResolveInfo resolveInfo = pm.resolveActivity(baseIntent, 0);
+            ResolveInfo resolveInfo = PackageManagerUtils.resolveActivity(baseIntent, 0);
             if (resolveInfo == null) return null;
             return resolveInfo.activityInfo.name;
         }
     }
-
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
index 7886998..aa3a21a 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/download/OMADownloadHandler.java
@@ -35,6 +35,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.ObserverList;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.task.AsyncTask;
 import org.chromium.chrome.browser.ChromeFeatureList;
@@ -358,7 +359,7 @@
                         omaInfo, mDownloadInfo, DOWNLOAD_STATUS_INSUFFICIENT_MEMORY);
                 return;
             }
-            if (getOpennableType(mContext.getPackageManager(), omaInfo) == null) {
+            if (getOpennableType(omaInfo) == null) {
                 showDownloadWarningDialog(
                         R.string.oma_download_non_acceptable_content,
                         omaInfo, mDownloadInfo, DOWNLOAD_STATUS_NON_ACCEPTABLE_CONTENT);
@@ -513,7 +514,7 @@
         textView = (TextView) v.findViewById(R.id.oma_download_size);
         textView.setText(omaInfo.getValue(OMA_SIZE));
         textView = (TextView) v.findViewById(R.id.oma_download_type);
-        textView.setText(getOpennableType(mContext.getPackageManager(), omaInfo));
+        textView.setText(getOpennableType(omaInfo));
         textView = (TextView) v.findViewById(R.id.oma_download_description);
         textView.setText(omaInfo.getValue(OMA_DESCRIPTION));
 
@@ -597,11 +598,10 @@
     /**
      * Returns the first MIME type in the OMA download that can be opened on the device.
      *
-     * @param pm PackageManger for the current context.
      * @param omaInfo Information about the OMA content.
      * @return the MIME type can be opened by the device.
      */
-    static String getOpennableType(PackageManager pm, OMAInfo omaInfo) {
+    static String getOpennableType(OMAInfo omaInfo) {
         if (omaInfo.isValueEmpty(OMA_OBJECT_URI)) {
             return null;
         }
@@ -613,8 +613,9 @@
                     && !type.equalsIgnoreCase(OMA_DOWNLOAD_DESCRIPTOR_MIME)
                     && !type.equalsIgnoreCase(OMA_DRM_RIGHTS_MIME)) {
                 intent.setDataAndType(uri, type);
-                if (!pm.queryIntentActivities(intent,
-                        PackageManager.MATCH_DEFAULT_ONLY).isEmpty()) {
+                if (!PackageManagerUtils
+                                .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
+                                .isEmpty()) {
                     return type;
                 }
             }
@@ -713,7 +714,7 @@
         if (omaInfo == null) return;
         String mimeType = omaInfo.getDrmType();
         if (mimeType == null) {
-            mimeType = getOpennableType(mContext.getPackageManager(), omaInfo);
+            mimeType = getOpennableType(omaInfo);
         }
         String fileName = omaInfo.getValue(OMA_NAME);
         String url = omaInfo.getValue(OMA_OBJECT_URI);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
index 1a7cda5c..d5cc390 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegate.java
@@ -5,6 +5,7 @@
 package org.chromium.chrome.browser.externalnav;
 
 import android.content.Intent;
+import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 
 import org.chromium.chrome.browser.externalnav.ExternalNavigationHandler.OverrideUrlLoadingResult;
@@ -21,6 +22,8 @@
     /**
      * Get the list of component name of activities which can resolve |intent|.  If the request
      * fails, null will be returned.
+     *
+     * See {@link PackageManager#queryIntentActivities(Intent, int)}
      */
     List<ResolveInfo> queryIntentActivities(Intent intent);
 
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
index 71fa4b4..d2b0264 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationDelegateImpl.java
@@ -26,9 +26,8 @@
 import org.chromium.base.ApplicationState;
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.PathUtils;
-import org.chromium.base.StrictModeContext;
-import org.chromium.base.ThreadUtils;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.base.task.PostTask;
@@ -132,51 +131,38 @@
      * @return true if the intent can be resolved, or false otherwise.
      */
     public static boolean resolveIntent(Intent intent, boolean allowSelfOpen) {
-        try {
-            boolean activityResolved = false;
-            Context context = ContextUtils.getApplicationContext();
-            ResolveInfo info = context.getPackageManager().resolveActivity(intent, 0);
-            if (info != null) {
-                final String packageName = context.getPackageName();
-                if (info.match != 0) {
-                    // There is a default activity for this intent, use that.
-                    if (allowSelfOpen || !packageName.equals(info.activityInfo.packageName)) {
-                        activityResolved = true;
-                    }
-                } else {
-                    List<ResolveInfo> handlers = context.getPackageManager().queryIntentActivities(
-                            intent, PackageManager.MATCH_DEFAULT_ONLY);
-                    if (handlers != null && !handlers.isEmpty()) {
-                        activityResolved = true;
-                        boolean canSelfOpen = false;
-                        boolean hasPdfViewer = false;
-                        for (ResolveInfo resolveInfo : handlers) {
-                            String pName = resolveInfo.activityInfo.packageName;
-                            if (packageName.equals(pName)) {
-                                canSelfOpen = true;
-                            } else if (PDF_VIEWER.equals(pName)) {
-                                if (isPdfIntent(intent)) {
-                                    intent.setClassName(pName, resolveInfo.activityInfo.name);
-                                    Uri referrer = new Uri.Builder().scheme(
-                                            IntentHandler.ANDROID_APP_REFERRER_SCHEME).authority(
-                                                    packageName).build();
-                                    intent.putExtra(Intent.EXTRA_REFERRER, referrer);
-                                    hasPdfViewer = true;
-                                    break;
-                                }
-                            }
-                        }
-                        if ((canSelfOpen && !allowSelfOpen) && !hasPdfViewer) {
-                            activityResolved = false;
-                        }
-                    }
+        Context context = ContextUtils.getApplicationContext();
+        ResolveInfo info = PackageManagerUtils.resolveActivity(intent, 0);
+        if (info == null) return false;
+
+        final String packageName = context.getPackageName();
+        if (info.match != 0) {
+            // There is a default activity for this intent, use that.
+            return allowSelfOpen || !packageName.equals(info.activityInfo.packageName);
+        }
+        List<ResolveInfo> handlers = PackageManagerUtils.queryIntentActivities(
+                intent, PackageManager.MATCH_DEFAULT_ONLY);
+        if (handlers == null || handlers.isEmpty()) return false;
+        boolean canSelfOpen = false;
+        boolean hasPdfViewer = false;
+        for (ResolveInfo resolveInfo : handlers) {
+            String pName = resolveInfo.activityInfo.packageName;
+            if (packageName.equals(pName)) {
+                canSelfOpen = true;
+            } else if (PDF_VIEWER.equals(pName)) {
+                if (isPdfIntent(intent)) {
+                    intent.setClassName(pName, resolveInfo.activityInfo.name);
+                    Uri referrer = new Uri.Builder()
+                                           .scheme(IntentHandler.ANDROID_APP_REFERRER_SCHEME)
+                                           .authority(packageName)
+                                           .build();
+                    intent.putExtra(Intent.EXTRA_REFERRER, referrer);
+                    hasPdfViewer = true;
+                    break;
                 }
             }
-            return activityResolved;
-        } catch (RuntimeException e) {
-            IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
         }
-        return false;
+        return !canSelfOpen || allowSelfOpen || hasPdfViewer;
     }
 
     private static boolean isPdfIntent(Intent intent) {
@@ -187,28 +173,6 @@
     }
 
     /**
-     * Retrieve information about the Activity that will handle the given Intent.
-     *
-     * Note this function is slow on Android versions less than Lollipop.
-     *
-     * @param intent Intent to resolve.
-     * @return       ResolveInfo of the Activity that will handle the Intent, or null if it failed.
-     */
-    public static ResolveInfo resolveActivity(Intent intent) {
-        // This function is expensive on KK and below and should not be called from main thread.
-        assert Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP
-                || !ThreadUtils.runningOnUiThread();
-        try {
-            Context context = ContextUtils.getApplicationContext();
-            PackageManager pm = context.getPackageManager();
-            return pm.resolveActivity(intent, 0);
-        } catch (RuntimeException e) {
-            IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
-        }
-        return null;
-    }
-
-    /**
      * Determines whether Chrome will be handling the given Intent.
      *
      * Note this function is slow on Android versions less than Lollipop.
@@ -219,39 +183,25 @@
      */
     public static boolean willChromeHandleIntent(Intent intent, boolean matchDefaultOnly) {
         Context context = ContextUtils.getApplicationContext();
-        try {
-            // Early-out if the intent targets Chrome.
-            if (context.getPackageName().equals(intent.getPackage())
-                    || (intent.getComponent() != null
-                               && context.getPackageName().equals(
-                                          intent.getComponent().getPackageName()))) {
-                return true;
-            }
-
-            // Fall back to the more expensive querying of Android when the intent doesn't target
-            // Chrome.
-            ResolveInfo info = context.getPackageManager().resolveActivity(
-                    intent, matchDefaultOnly ? PackageManager.MATCH_DEFAULT_ONLY : 0);
-            return info != null && info.activityInfo.packageName.equals(context.getPackageName());
-        } catch (RuntimeException e) {
-            IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
-            return false;
+        // Early-out if the intent targets Chrome.
+        if (context.getPackageName().equals(intent.getPackage())
+                || (intent.getComponent() != null
+                        && context.getPackageName().equals(
+                                intent.getComponent().getPackageName()))) {
+            return true;
         }
+
+        // Fall back to the more expensive querying of Android when the intent doesn't target
+        // Chrome.
+        ResolveInfo info = PackageManagerUtils.resolveActivity(
+                intent, matchDefaultOnly ? PackageManager.MATCH_DEFAULT_ONLY : 0);
+        return info != null && info.activityInfo.packageName.equals(context.getPackageName());
     }
 
     @Override
     public List<ResolveInfo> queryIntentActivities(Intent intent) {
-        // White-list for Samsung. See http://crbug.com/613977 for more context.
-        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-        try {
-            return mApplicationContext.getPackageManager()
-                    .queryIntentActivities(intent, PackageManager.GET_RESOLVED_FILTER);
-        } catch (RuntimeException e) {
-            IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
-            return null;
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
+        return PackageManagerUtils.queryIntentActivities(
+                intent, PackageManager.GET_RESOLVED_FILTER);
     }
 
     @Override
@@ -342,17 +292,9 @@
      *         no package name given checks whether there is any specialized handler.
      */
     public static boolean isPackageSpecializedHandler(String packageName, Intent intent) {
-        Context context = ContextUtils.getApplicationContext();
-        // On certain Samsung devices, queryIntentActivities can trigger a
-        // StrictModeDiskReadViolation (https://crbug.com/894160).
-        try (StrictModeContext ignored = StrictModeContext.allowDiskReads()) {
-            List<ResolveInfo> handlers = context.getPackageManager().queryIntentActivities(
-                    intent, PackageManager.GET_RESOLVED_FILTER);
-            return getSpecializedHandlersWithFilter(handlers, packageName).size() > 0;
-        } catch (RuntimeException e) {
-            IntentUtils.logTransactionTooLargeOrRethrow(e, intent);
-        }
-        return false;
+        List<ResolveInfo> handlers = PackageManagerUtils.queryIntentActivities(
+                intent, PackageManager.GET_RESOLVED_FILTER);
+        return !getSpecializedHandlersWithFilter(handlers, packageName).isEmpty();
     }
 
     @Override
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
index 0ae7af56..45191d76 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandler.java
@@ -216,36 +216,120 @@
         return true;
     }
 
+    // http://crbug.com/441284 : Disallow firing external intent while Chrome is in the
+    // background.
+    private boolean blockExternalNavWhileBackgrounded(ExternalNavigationParams params) {
+        if (params.isApplicationMustBeInForeground() && !mDelegate.isChromeAppInForeground()) {
+            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Chrome is not in foreground");
+            return true;
+        }
+        return false;
+    }
+
+    // http://crbug.com/464669 : Disallow firing external intent from background tab.
+    private boolean blockExternalNavFromBackgroundTab(ExternalNavigationParams params) {
+        if (params.isBackgroundTabNavigation()) {
+            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Navigation in background tab");
+            return true;
+        }
+        return false;
+    }
+
+    // http://crbug.com/164194 . A navigation forwards or backwards should never trigger
+    // the intent picker.
+    private boolean ignoreBackForwardNav(ExternalNavigationParams params) {
+        if ((params.getPageTransition() & PageTransition.FORWARD_BACK) != 0) {
+            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Forward or back navigation");
+            return true;
+        }
+        return false;
+    }
+
+    // http://crbug.com/605302 : Allow Chrome to handle all pdf file downloads.
+    private boolean isInternalPdfDownload(
+            boolean isExternalProtocol, ExternalNavigationParams params) {
+        if (!isExternalProtocol && mDelegate.isPdfDownload(params.getUrl())) {
+            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: PDF downloads are now handled by Chrome");
+            return true;
+        }
+        return false;
+    }
+
+    // If accessing a file URL, ensure that the user has granted the necessary file access
+    // to Chrome.
+    private boolean startFileIntentIfNecessary(ExternalNavigationParams params, Intent intent) {
+        if (params.getUrl().startsWith(UrlConstants.FILE_URL_SHORT_PREFIX)
+                && mDelegate.shouldRequestFileAccess(params.getUrl())) {
+            mDelegate.startFileIntent(intent, params.getReferrerUrl(),
+                    params.shouldCloseContentsOnOverrideUrlLoadingAndLaunchIntent());
+            if (DEBUG) Log.i(TAG, "OVERRIDE_WITH_ASYNC_ACTION: Requesting filesystem access");
+            return true;
+        }
+        return false;
+    }
+
+    // http://crbug.com/169549 : If you type in a URL that then redirects in server side to a link
+    // that cannot be rendered by the browser, we want to show the intent picker.
+    private boolean isTypedRedirectToExternalProtocol(
+            ExternalNavigationParams params, int pageTransitionCore, boolean isExternalProtocol) {
+        boolean isTyped = (pageTransitionCore == PageTransition.TYPED)
+                || ((params.getPageTransition() & PageTransition.FROM_ADDRESS_BAR) != 0);
+        return isTyped && params.isRedirect() && isExternalProtocol;
+    }
+
+    // http://crbug.com/659301: Handle redirects to Instant Apps out of Custom Tabs.
+    private boolean handleCCTRedirectsToInstantApps(ExternalNavigationParams params,
+            boolean isExternalProtocol, boolean incomingIntentRedirect) {
+        TabRedirectHandler handler = params.getRedirectHandler();
+        if (handler == null) return false;
+        if (handler.isFromCustomTabIntent() && !isExternalProtocol && incomingIntentRedirect
+                && !handler.shouldNavigationTypeStayInChrome()
+                && mDelegate.maybeLaunchInstantApp(
+                        params.getUrl(), params.getReferrerUrl(), true)) {
+            if (DEBUG) {
+                Log.i(TAG, "OVERRIDE_WITH_EXTERNAL_INTENT: Launching redirect to an instant app");
+            }
+            return true;
+        }
+        return false;
+    }
+
+    private boolean redirectShouldStayInChrome(
+            ExternalNavigationParams params, boolean isExternalProtocol, Intent intent) {
+        TabRedirectHandler handler = params.getRedirectHandler();
+        if (handler == null) return false;
+        boolean shouldStayInChrome = handler.shouldStayInChrome(
+                isExternalProtocol, mDelegate.isIntentForTrustedCallingApp(intent));
+        if (shouldStayInChrome || handler.shouldNotOverrideUrlLoading()) {
+            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: RedirectHandler decision");
+            return true;
+        }
+        return false;
+    }
+
     private @OverrideUrlLoadingResult int shouldOverrideUrlLoadingInternal(
             ExternalNavigationParams params, Intent intent, boolean hasBrowserFallbackUrl,
             String browserFallbackUrl) {
-        // http://crbug.com/441284 : Disallow firing external intent while Chrome is in the
-        // background.
-        if (params.isApplicationMustBeInForeground() && !mDelegate.isChromeAppInForeground()) {
-            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Chrome is not in foreground");
-            return OverrideUrlLoadingResult.NO_OVERRIDE;
-        }
-        // http://crbug.com/464669 : Disallow firing external intent from background tab.
-        if (params.isBackgroundTabNavigation()) {
-            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Navigation in background tab");
+        if (blockExternalNavWhileBackgrounded(params) || blockExternalNavFromBackgroundTab(params)
+                || ignoreBackForwardNav(params)) {
             return OverrideUrlLoadingResult.NO_OVERRIDE;
         }
 
-        // pageTransition is a combination of an enumeration (core value) and bitmask.
         int pageTransitionCore = params.getPageTransition() & PageTransition.CORE_MASK;
         boolean isLink = pageTransitionCore == PageTransition.LINK;
         boolean isFormSubmit = pageTransitionCore == PageTransition.FORM_SUBMIT;
         boolean isFromIntent = (params.getPageTransition() & PageTransition.FROM_API) != 0;
-        boolean isForwardBackNavigation =
-                (params.getPageTransition() & PageTransition.FORWARD_BACK) != 0;
         boolean isExternalProtocol = !UrlUtilities.isAcceptedScheme(params.getUrl());
 
-        // http://crbug.com/169549 : If you type in a URL that then redirects in server side to an
-        // link that cannot be rendered by the browser, we want to show the intent picker.
-        boolean isTyped = (pageTransitionCore == PageTransition.TYPED)
-                || ((params.getPageTransition() & PageTransition.FROM_ADDRESS_BAR) != 0);
-        boolean typedRedirectToExternalProtocol = isTyped && params.isRedirect()
-                && isExternalProtocol;
+        if (isInternalPdfDownload(isExternalProtocol, params)) {
+            return OverrideUrlLoadingResult.NO_OVERRIDE;
+        }
+
+        // This check should happen for reloads, navigations, etc..., which is why
+        // it occurs before the subsequent blocks.
+        if (startFileIntentIfNecessary(params, intent)) {
+            return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION;
+        }
 
         // We do not want to show the intent picker for core types typed, bookmarks, auto toplevel,
         // generated, keyword, keyword generated. See below for exception to typed URL and
@@ -256,30 +340,6 @@
         // - http://crbug.com/162106: Intent picker should not be presented on returning to a page.
         //   This should be covered by not showing the picker if the core type is reload.
 
-        // http://crbug.com/164194 . A navigation forwards or backwards should never trigger
-        // the intent picker.
-        if (isForwardBackNavigation) {
-            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Forward or back navigation");
-            return OverrideUrlLoadingResult.NO_OVERRIDE;
-        }
-
-        // http://crbug.com/605302 : Allow Chrome to handle all pdf file downloads.
-        if (!isExternalProtocol && mDelegate.isPdfDownload(params.getUrl())) {
-            if (DEBUG) Log.i(TAG, "NO_OVERRIDE: PDF downloads are now handled by Chrome");
-            return OverrideUrlLoadingResult.NO_OVERRIDE;
-        }
-
-        // If accessing a file URL, ensure that the user has granted the necessary file access
-        // to Chrome.  This check should happen for reloads, navigations, etc..., which is why
-        // it occurs before the subsequent blocks.
-        if (params.getUrl().startsWith(UrlConstants.FILE_URL_SHORT_PREFIX)
-                && mDelegate.shouldRequestFileAccess(params.getUrl())) {
-            mDelegate.startFileIntent(intent, params.getReferrerUrl(),
-                    params.shouldCloseContentsOnOverrideUrlLoadingAndLaunchIntent());
-            if (DEBUG) Log.i(TAG, "OVERRIDE_WITH_ASYNC_ACTION: Requesting filesystem access");
-            return OverrideUrlLoadingResult.OVERRIDE_WITH_ASYNC_ACTION;
-        }
-
         // http://crbug.com/149218: We want to show the intent picker for ordinary links, providing
         // the link is not an incoming intent from another application, unless it's a redirect (see
         // below).
@@ -293,36 +353,18 @@
         boolean incomingIntentRedirect = (isLink && isFromIntent && params.isRedirect())
                 || isOnEffectiveIntentRedirect;
 
-
-        // http://crbug/331571 : Do not override a navigation started from user typing.
-        // http://crbug/424029 : Need to stay in Chrome for an intent heading explicitly to Chrome.
-        // http://crbug/881740 : Relax stay in Chrome restriction for Custom Tabs.
-        if (params.getRedirectHandler() != null) {
-            TabRedirectHandler handler = params.getRedirectHandler();
-            boolean shouldStayInChrome = handler.shouldStayInChrome(
-                    isExternalProtocol, mDelegate.isIntentForTrustedCallingApp(intent));
-            if (shouldStayInChrome || handler.shouldNotOverrideUrlLoading()) {
-                // http://crbug.com/659301: Handle redirects to Instant Apps out of Custom Tabs.
-                if (handler.isFromCustomTabIntent() && !isExternalProtocol && incomingIntentRedirect
-                        && !handler.shouldNavigationTypeStayInChrome()
-                        && mDelegate.maybeLaunchInstantApp(
-                                   params.getUrl(), params.getReferrerUrl(), true)) {
-                    if (DEBUG) {
-                        Log.i(TAG, "OVERRIDE_WITH_EXTERNAL_INTENT: Launching redirect to "
-                                + "an instant app");
-                    }
-                    return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
-                }
-                if (DEBUG) Log.i(TAG, "NO_OVERRIDE: RedirectHandler decision");
-                return OverrideUrlLoadingResult.NO_OVERRIDE;
-            }
+        // Don't stay in Chrome for Custom Tabs redirecting to Instant Apps.
+        if (handleCCTRedirectsToInstantApps(params, isExternalProtocol, incomingIntentRedirect)) {
+            return OverrideUrlLoadingResult.OVERRIDE_WITH_EXTERNAL_INTENT;
+        } else if (redirectShouldStayInChrome(params, isExternalProtocol, intent)) {
+            return OverrideUrlLoadingResult.NO_OVERRIDE;
         }
 
-        // http://crbug.com/181186: We need to show the intent picker when we receive a redirect
-        // following a form submit.
-        boolean isRedirectFromFormSubmit = isFormSubmit && params.isRedirect();
+        if (!isTypedRedirectToExternalProtocol(params, pageTransitionCore, isExternalProtocol)) {
+            // http://crbug.com/181186: We need to show the intent picker when we receive a redirect
+            // following a form submit.
+            boolean isRedirectFromFormSubmit = isFormSubmit && params.isRedirect();
 
-        if (!typedRedirectToExternalProtocol) {
             if (!linkNotFromIntent && !incomingIntentRedirect && !isRedirectFromFormSubmit) {
                 if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Incoming intent (not a redirect)");
                 return OverrideUrlLoadingResult.NO_OVERRIDE;
@@ -341,6 +383,7 @@
                 }
                 return OverrideUrlLoadingResult.NO_OVERRIDE;
             }
+            // http://crbug/331571 : Do not override a navigation started from user typing.
             if (params.getRedirectHandler() != null
                     && params.getRedirectHandler().isNavigationFromUserTyping()) {
                 if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Navigation from user typing");
@@ -561,7 +604,7 @@
 
                     if (previousIntent != null
                             && resolversSubsetOf(resolvingInfos,
-                                       mDelegate.queryIntentActivities(previousIntent))) {
+                                    mDelegate.queryIntentActivities(previousIntent))) {
                         if (DEBUG) Log.i(TAG, "NO_OVERRIDE: Same host, no new resolvers");
                         return OverrideUrlLoadingResult.NO_OVERRIDE;
                     }
@@ -781,17 +824,18 @@
      */
     public boolean canExternalAppHandleUrl(String url) {
         if (url.startsWith(WTAI_MC_URL_PREFIX)) return true;
+        Intent intent;
         try {
-            Intent intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
-            if (intent.getPackage() != null) return true;
-
-            List<ResolveInfo> resolvingInfos = mDelegate.queryIntentActivities(intent);
-            if (resolvingInfos != null && resolvingInfos.size() > 0) return true;
-        } catch (Exception ex) {
+            intent = Intent.parseUri(url, Intent.URI_INTENT_SCHEME);
+        } catch (URISyntaxException ex) {
             // Ignore the error.
             Log.w(TAG, "Bad URI %s", url, ex);
+            return false;
         }
-        return false;
+        if (intent.getPackage() != null) return true;
+
+        List<ResolveInfo> resolvingInfos = mDelegate.queryIntentActivities(intent);
+        return resolvingInfos != null && !resolvingInfos.isEmpty();
     }
 
     /**
@@ -837,9 +881,8 @@
         } catch (URISyntaxException ex) {
             return false;
         }
-        return ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(handlers, appId)
-                       .size()
-                > 0;
+        return !ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(handlers, appId)
+                        .isEmpty();
     }
 
     /**
@@ -884,6 +927,6 @@
      */
     private boolean deviceCanHandleIntent(Intent intent) {
         List<ResolveInfo> resolveInfos = mDelegate.queryIntentActivities(intent);
-        return resolveInfos != null && resolveInfos.size() > 0;
+        return resolveInfos != null && !resolveInfos.isEmpty();
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAState.java b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAState.java
index 78b7e80..b4de0a9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAState.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/gsa/GSAState.java
@@ -8,10 +8,10 @@
 import android.annotation.SuppressLint;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.text.TextUtils;
 
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.PackageUtils;
 import org.chromium.components.signin.ChromeSigninController;
 
@@ -109,10 +109,9 @@
     public boolean isGsaAvailable() {
         if (mGsaAvailable != null) return mGsaAvailable;
         mGsaAvailable = false;
-        PackageManager pm = mContext.getPackageManager();
         Intent searchIntent = new Intent(SEARCH_INTENT_ACTION);
         searchIntent.setPackage(GSAState.SEARCH_INTENT_PACKAGE);
-        List<ResolveInfo> resolveInfo = pm.queryIntentActivities(searchIntent, 0);
+        List<ResolveInfo> resolveInfo = PackageManagerUtils.queryIntentActivities(searchIntent, 0);
         if (resolveInfo.size() == 0) {
             mGsaAvailable = false;
         } else if (!isPackageAboveVersion(SEARCH_INTENT_PACKAGE, GSA_VERSION_FOR_DOCUMENT)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
index cad12a8..76e47b5 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoNotificationService.java
@@ -13,7 +13,6 @@
 import android.app.PendingIntent;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.os.Build;
 import android.text.TextUtils;
 
@@ -122,12 +121,11 @@
         Context context = ContextUtils.getApplicationContext();
         ActivityManager manager =
                 (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        PackageManager pm = getPackageManager();
 
         for (AppTask task : manager.getAppTasks()) {
             RecentTaskInfo info = DocumentUtils.getTaskInfoFromTask(task);
             if (info == null) continue;
-            String componentName = DocumentUtils.getTaskComponentName(task, pm);
+            String componentName = DocumentUtils.getTaskComponentName(task);
 
             // It is not easily possible to distinguish between tasks sitting on top of
             // ChromeLauncherActivity, so we treat them all as likely ChromeTabbedActivities and
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java
index 2e5b48a..5980ab7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/incognito/IncognitoUtils.java
@@ -8,7 +8,6 @@
 import android.app.Activity;
 import android.app.ActivityManager;
 import android.content.Context;
-import android.content.pm.PackageManager;
 import android.os.Build;
 import android.util.Pair;
 
@@ -47,13 +46,12 @@
         Context context = ContextUtils.getApplicationContext();
         ActivityManager manager =
                 (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
-        PackageManager pm = context.getPackageManager();
 
         Set<Integer> tabbedModeTaskIds = new HashSet<>();
         for (ActivityManager.AppTask task : manager.getAppTasks()) {
             ActivityManager.RecentTaskInfo info = DocumentUtils.getTaskInfoFromTask(task);
             if (info == null) continue;
-            String componentName = DocumentUtils.getTaskComponentName(task, pm);
+            String componentName = DocumentUtils.getTaskComponentName(task);
 
             if (ChromeTabbedActivity.isTabbedModeComponentName(componentName)) {
                 tabbedModeTaskIds.add(info.id);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
index 093360df..1534c189 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/ntp/NewTabPageLayout.java
@@ -185,7 +185,7 @@
             mExploreSectionView = exploreStub.inflate();
         }
 
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+        if (SearchEngineLogoUtils.isSearchEngineLogoEnabled()) {
             int lateral_padding =
                     getResources().getDimensionPixelOffset(R.dimen.sei_search_box_lateral_padding);
             mSearchBoxView.setPaddingRelative(lateral_padding, mSearchBoxView.getPaddingTop(),
@@ -320,7 +320,7 @@
         TraceEvent.begin(TAG + ".initializeVoiceSearchButton()");
         mVoiceSearchButton = findViewById(R.id.voice_search_button);
         mVoiceSearchButton.setOnClickListener(v -> mManager.focusSearchBox(true, null));
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+        if (SearchEngineLogoUtils.isSearchEngineLogoEnabled()) {
             // View is 48dp, image is 24dp. Increasing the padding from 4dp -> 8dp will split the
             // remaining 16dp evenly between start/end resulting in a paddingEnd of 8dp.
             int paddingStart = getResources().getDimensionPixelSize(
@@ -733,7 +733,7 @@
      */
     void updateVoiceSearchButtonVisibility() {
         if (mSearchBoxEndPadding == UNSET_RESOURCE_FLAG) {
-            mSearchBoxEndPadding = SearchEngineLogoUtils.shouldShowSearchEngineLogo()
+            mSearchBoxEndPadding = SearchEngineLogoUtils.isSearchEngineLogoEnabled()
                     ? getResources().getDimensionPixelSize(R.dimen.sei_search_box_lateral_padding)
                     : getResources().getDimensionPixelSize(R.dimen.location_bar_lateral_padding);
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
index 04952d7c..2054372 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarPhone.java
@@ -64,13 +64,11 @@
                 shouldShowSearchEngineLogo, isSearchEngineGoogle, searchEngineUrl);
 
         // The search engine icon will be the first visible focused view when it's showing.
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
-            mStatusView = findViewById(R.id.location_bar_status);
-            mStatusView.updateSearchEngineStatusIcon(
-                    shouldShowSearchEngineLogo, isSearchEngineGoogle, searchEngineUrl);
-            mIconView = mStatusView.findViewById(R.id.location_bar_status_icon);
-            mFirstVisibleFocusedView = mStatusView;
+        shouldShowSearchEngineLogo = SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                getToolbarDataProvider().isIncognito());
 
+        // This branch will be hit if the search engine logo experiment is enabled.
+        if (SearchEngineLogoUtils.isSearchEngineLogoEnabled()) {
             // Setup the padding once we're loaded, the focused padding changes will happen with
             // post-layout positioning via setTranslation. This is a byproduct of the way we do the
             // omnibox un/focus animation which is by writing a function f(x) where x ranges from
@@ -82,10 +80,20 @@
                     R.dimen.sei_location_bar_lateral_padding);
             setPaddingRelative(
                     lateral_padding, getPaddingTop(), lateral_padding, getPaddingBottom());
+        }
+
+        // This branch will be hit if the search engine logo experiment is enabled and we should
+        // show the logo.
+        if (shouldShowSearchEngineLogo) {
+            mStatusView = findViewById(R.id.location_bar_status);
+            mStatusView.updateSearchEngineStatusIcon(
+                    shouldShowSearchEngineLogo, isSearchEngineGoogle, searchEngineUrl);
+            mIconView = mStatusView.findViewById(R.id.location_bar_status_icon);
+            mFirstVisibleFocusedView = mStatusView;
 
             // When the search engine icon is enabled, icons are translations into the parent view's
             // padding area. Set clip padding to false to prevent them from getting clipped.
-            if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) setClipToPadding(false);
+            setClipToPadding(false);
         }
         setShowIconsWhenUrlFocused(shouldShowSearchEngineLogo);
     }
@@ -109,7 +117,10 @@
         if (mStatusView == null) return 0;
 
         // No offset is required if the experiment is disabled.
-        if (!SearchEngineLogoUtils.shouldShowSearchEngineLogo()) return 0;
+        if (!SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                    getToolbarDataProvider().isIncognito())) {
+            return 0;
+        }
 
         // On non-NTP pages, there will always be an icon when unfocused.
         if (mToolbarDataProvider.getNewTabPageForCurrentTab() == null) return 0;
@@ -147,7 +158,10 @@
         if (mStatusView == null) return 0;
 
         // No offset is required if the experiment is disabled.
-        if (!SearchEngineLogoUtils.shouldShowSearchEngineLogo()) return 0;
+        if (!SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                    getToolbarDataProvider().isIncognito())) {
+            return 0;
+        }
 
         boolean isRtl = getLayoutDirection() == LAYOUT_DIRECTION_RTL;
         // The calculation here is:  the difference in padding between the focused vs unfocused
@@ -290,7 +304,11 @@
      * @param urlFocusChangePercent The completion percentage of the URL focus change animation.
      */
     private void updateStatusButtonVisibility(float urlFocusChangePercent) {
-        if (mIconView == null || !SearchEngineLogoUtils.shouldShowSearchEngineLogo()) return;
+        if (mIconView == null
+                || !SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                        getToolbarDataProvider().isIncognito())) {
+            return;
+        }
 
         if (mToolbarDataProvider.getNewTabPageForCurrentTab() != null
                 && mToolbarDataProvider.getNewTabPageForCurrentTab().isLocationBarShownInNTP()) {
@@ -330,4 +348,15 @@
         return getResources().getDimensionPixelSize(R.dimen.sei_search_box_lateral_padding)
                 - getResources().getDimensionPixelSize(R.dimen.sei_location_bar_lateral_padding);
     }
+
+    @Override
+    public void updateVisualsForState() {
+        super.updateVisualsForState();
+        boolean isIncognito = getToolbarDataProvider().isIncognito();
+        boolean shouldShowSearchEngineLogo =
+                SearchEngineLogoUtils.shouldShowSearchEngineLogo(isIncognito);
+        if (mIconView != null) mIconView.setVisibility(shouldShowSearchEngineLogo ? VISIBLE : GONE);
+        setShowIconsWhenUrlFocused(shouldShowSearchEngineLogo);
+        mFirstVisibleFocusedView = shouldShowSearchEngineLogo ? mStatusView : mUrlBar;
+    }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java
index dadebee..6bfd210ca9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandler.java
@@ -6,7 +6,6 @@
 
 import android.Manifest;
 import android.app.Activity;
-import android.content.Context;
 import android.content.Intent;
 import android.content.pm.PackageManager;
 import android.os.Bundle;
@@ -67,7 +66,7 @@
             new CachedMetrics.EnumeratedHistogramSample(
                     "VoiceInteraction.VoiceResultConfidenceValue", 101);
 
-    final private Delegate mDelegate;
+    private final Delegate mDelegate;
     private WebContentsObserver mVoiceSearchWebContentsObserver;
 
     // VoiceInteractionEventSource defined in tools/metrics/histograms/enums.xml.
@@ -350,7 +349,7 @@
 
         if (!showSpeechRecognitionIntent(windowAndroid, intent, source)) {
             // Requery whether or not the recognition intent can be handled.
-            isRecognitionIntentPresent(activity, false);
+            isRecognitionIntentPresent(false);
             mDelegate.updateMicButtonState();
             recordVoiceSearchFailureEventSource(source);
         }
@@ -390,7 +389,7 @@
         }
 
         Activity activity = windowAndroid.getActivity().get();
-        return activity != null && isRecognitionIntentPresent(activity, true);
+        return activity != null && isRecognitionIntentPresent(true);
     }
 
     /**
@@ -458,13 +457,11 @@
      * {@link RecognizerIntent#ACTION_WEB_SEARCH} {@link Intent} is handled by any
      * {@link android.app.Activity}s in the system.
      *
-     * @param context        The {@link Context} to use to check to see if the {@link Intent} will
-     *                       be handled.
      * @param useCachedValue Whether or not to use the cached value from a previous result.
      * @return {@code true} if recognition is supported.  {@code false} otherwise.
      */
     @VisibleForTesting
-    protected boolean isRecognitionIntentPresent(Context context, boolean useCachedValue) {
-        return FeatureUtilities.isRecognitionIntentPresent(context, useCachedValue);
+    protected boolean isRecognitionIntentPresent(boolean useCachedValue) {
+        return FeatureUtilities.isRecognitionIntentPresent(useCachedValue);
     }
 }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SearchEngineLogoUtils.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SearchEngineLogoUtils.java
index 599a710..d119d47 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SearchEngineLogoUtils.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/SearchEngineLogoUtils.java
@@ -48,26 +48,50 @@
 
     /**
      * Encapsulates complicated boolean check for reuse and readability.
-     * @return True if we should show the search engine logo.
+     * @return True if the search engine logo is enabled, regardless of visibility.
      */
-    public static boolean shouldShowSearchEngineLogo() {
+    public static boolean isSearchEngineLogoEnabled() {
         return !LocaleManager.getInstance().needToCheckForSearchEnginePromo()
                 && ChromeFeatureList.isInitialized()
-                && ChromeFeatureList.isEnabled(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
-                // Using the profile now, so we need to pay attention to browser initialization.
-                && BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER)
-                           .isFullBrowserStarted()
-                && !Profile.getLastUsedProfile().isOffTheRecord();
+                && ChromeFeatureList.isEnabled(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO);
     }
 
-    public static boolean shouldRoundedSearchEngineLogo() {
-        return shouldShowSearchEngineLogo() && ChromeFeatureList.isInitialized()
+    /**
+     * Encapsulates complicated boolean check for reuse and readability.
+     * @param isOffTheRecord True if the user is currently using an incognito tab.
+     * @return True if we should show the search engine logo.
+     */
+    public static boolean shouldShowSearchEngineLogo(boolean isOffTheRecord) {
+        return !isOffTheRecord
+                && isSearchEngineLogoEnabled()
+                // Using the profile now, so we need to pay attention to browser initialization.
+                && BrowserStartupController.get(LibraryProcessType.PROCESS_BROWSER)
+                           .isFullBrowserStarted();
+    }
+
+    /**
+     * Encapsulates complicated boolean check for reuse and readability.
+     * @param isOffTheRecord True if the user is currently using an incognito tab.
+     * @return True if we should show the rounded search engine logo.
+     */
+    public static boolean shouldShowRoundedSearchEngineLogo(boolean isOffTheRecord) {
+        return shouldShowSearchEngineLogo(isOffTheRecord) && ChromeFeatureList.isInitialized()
                 && ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
                         ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO, ROUNDED_EDGES_VARIANT, false);
     }
 
-    public static boolean shouldShowSearchLoupeEverywhere() {
-        return shouldShowSearchEngineLogo()
+    /** Ignores the incognito state for instances where a caller would otherwise pass "false". */
+    static boolean isRoundedSearchEngineLogoEnabled() {
+        return shouldShowRoundedSearchEngineLogo(false);
+    }
+
+    /**
+     * Encapsulates complicated boolean check for reuse and readability.
+     * @param isOffTheRecord True if the user is currently using an incognito tab.
+     * @return True if we should show the search engine logo as a loupe everywhere.
+     */
+    public static boolean shouldShowSearchLoupeEverywhere(boolean isOffTheRecord) {
+        return shouldShowSearchEngineLogo(isOffTheRecord)
                 && ChromeFeatureList.getFieldTrialParamByFeatureAsBoolean(
                         ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO, LOUPE_EVERYWHERE_VARIANT,
                         false);
@@ -108,7 +132,7 @@
      */
     public static int getSearchEngineLogoSizePixels(Resources resources) {
         if (sSearchEngineLogoTargetSizePixels == 0) {
-            if (shouldRoundedSearchEngineLogo()) {
+            if (isRoundedSearchEngineLogoEnabled()) {
                 sSearchEngineLogoTargetSizePixels = resources.getDimensionPixelSize(
                         R.dimen.omnibox_search_engine_logo_favicon_size);
             } else {
@@ -193,7 +217,7 @@
                 SearchEngineLogoUtils.getSearchEngineLogoSizePixels(resources), true);
 
         Bitmap composedIcon = scaledIcon;
-        if (shouldRoundedSearchEngineLogo()) {
+        if (isRoundedSearchEngineLogoEnabled()) {
             int composedSizePixels = getSearchEngineLogoComposedSizePixels(resources);
             if (sRoundedIconGenerator == null) {
                 sRoundedIconGenerator = new RoundedIconGenerator(composedSizePixels,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
index 35e4ac0..da4134db 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusMediator.java
@@ -47,13 +47,13 @@
         }
 
         /** @see {@link SearchEngineLogoUtils#shouldShowSearchEngineLogo} */
-        boolean shouldShowSearchEngineLogo() {
-            return SearchEngineLogoUtils.shouldShowSearchEngineLogo();
+        boolean shouldShowSearchEngineLogo(boolean isIncognito) {
+            return SearchEngineLogoUtils.shouldShowSearchEngineLogo(isIncognito);
         }
 
         /** @see {@link SearchEngineLogoUtils#shouldShowSearchLoupeEverywhere} */
-        boolean shouldShowSearchLoupeEverywhere() {
-            return SearchEngineLogoUtils.shouldShowSearchLoupeEverywhere();
+        boolean shouldShowSearchLoupeEverywhere(boolean isIncognito) {
+            return SearchEngineLogoUtils.shouldShowSearchLoupeEverywhere(isIncognito);
         }
 
         /** @see {@link SearchEngineLogoUtils#doesUrlMatchDefaultSearchEngine} */
@@ -387,7 +387,9 @@
                 && mToolbarCommonPropertiesModel.getDisplaySearchTerms() != null
                 && mDelegate.doesUrlMatchDefaultSearchEngine(
                         mToolbarCommonPropertiesModel.getCurrentUrl());
-        if (mDelegate.shouldShowSearchEngineLogo() && mIsSearchEngineStateSetup
+        boolean isIncognito = mToolbarCommonPropertiesModel != null
+                && mToolbarCommonPropertiesModel.isIncognito();
+        if (mDelegate.shouldShowSearchEngineLogo(isIncognito) && mIsSearchEngineStateSetup
                 && (showFocused || showUnfocusedNewTabPage || showUnfocusedSearchResultsPage)) {
             mShouldCancelCustomFavicon = false;
             // If the current url text is a valid url, then swap the dse icon for a globe.
@@ -395,12 +397,12 @@
                 mModel.set(StatusProperties.STATUS_ICON_RES, R.drawable.ic_globe_24dp);
             } else if (mIsSearchEngineGoogle) {
                 mModel.set(StatusProperties.STATUS_ICON_RES,
-                        mDelegate.shouldShowSearchLoupeEverywhere()
+                        mDelegate.shouldShowSearchLoupeEverywhere(isIncognito)
                                 ? R.drawable.ic_search
                                 : R.drawable.ic_logo_googleg_24dp);
             } else {
                 mModel.set(StatusProperties.STATUS_ICON_RES, R.drawable.ic_search);
-                if (!mDelegate.shouldShowSearchLoupeEverywhere()) {
+                if (!mDelegate.shouldShowSearchLoupeEverywhere(isIncognito)) {
                     mDelegate.getSearchEngineLogoFavicon(mResources, (favicon) -> {
                         if (favicon == null || mShouldCancelCustomFavicon) return;
                         mModel.set(StatusProperties.STATUS_ICON, favicon);
@@ -445,7 +447,8 @@
     /** Return the resource id for the accessibility description or 0 if none apply. */
     private int getAccessibilityDescriptionRes() {
         if (mUrlHasFocus) {
-            if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+            if (SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                        mToolbarCommonPropertiesModel.isIncognito())) {
                 return 0;
             } else if (mShowStatusIconWhenUrlFocused) {
                 return R.string.accessibility_toolbar_btn_site_info;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
index cb969f1..c8adedc 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusView.java
@@ -30,6 +30,7 @@
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.omnibox.SearchEngineLogoUtils;
+import org.chromium.chrome.browser.toolbar.ToolbarCommonPropertiesModel;
 import org.chromium.chrome.browser.ui.widget.CompositeTouchDelegate;
 import org.chromium.chrome.browser.util.AccessibilityUtil;
 import org.chromium.ui.UiUtils;
@@ -65,6 +66,8 @@
     private boolean mLastTouchDelegateRtlness;
     private Rect mLastTouchDelegateRect;
 
+    private ToolbarCommonPropertiesModel mToolbarCommonPropertiesModel;
+
     public StatusView(Context context, AttributeSet attributes) {
         super(context, attributes);
     }
@@ -81,12 +84,19 @@
         configureAccessibilityDescriptions();
     }
 
+    void setToolbarCommonPropertiesModel(
+            ToolbarCommonPropertiesModel toolbarCommonPropertiesModel) {
+        mToolbarCommonPropertiesModel = toolbarCommonPropertiesModel;
+    }
+
     /**
      * @see {@link org.chromium.chrome.browser.omnibox.LocationBar#updateSearchEngineStatusIcon}.
      */
     public void updateSearchEngineStatusIcon(boolean shouldShowSearchEngineLogo,
             boolean isSearchEngineGoogle, String searchEngineUrl) {
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+        if (mToolbarCommonPropertiesModel != null
+                && SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                        mToolbarCommonPropertiesModel.isIncognito())) {
             LinearLayout.LayoutParams layoutParams =
                     new LinearLayout.LayoutParams(mIconView.getLayoutParams());
             layoutParams.setMarginEnd(0);
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java
index 0d7a07f..aaeca95 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/status/StatusViewCoordinator.java
@@ -66,6 +66,7 @@
     public void setToolbarDataProvider(ToolbarDataProvider toolbarDataProvider) {
         mToolbarDataProvider = toolbarDataProvider;
         mMediator.setToolbarCommonPropertiesModel(mToolbarDataProvider);
+        mStatusView.setToolbarCommonPropertiesModel(mToolbarDataProvider);
         // Update status immediately after receiving the data provider to avoid initial presence
         // glitch on tablet devices. This glitch would be typically seen upon launch of app, right
         // before the landing page is presented to the user.
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
index 3581f2f..979daa9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/omnibox/suggestions/AutocompleteMediator.java
@@ -15,6 +15,7 @@
 
 import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
+import androidx.annotation.StringRes;
 
 import org.chromium.base.Log;
 import org.chromium.base.VisibleForTesting;
@@ -192,6 +193,18 @@
     }
 
     /**
+     * Check if the suggestion is created from clipboard.
+     *
+     * @param suggestion The OmniboxSuggestion to check.
+     * @return Whether or not the suggestion is from clipboard.
+     */
+    private boolean isSuggestionFromClipboard(OmniboxSuggestion suggestion) {
+        return suggestion.getType() == OmniboxSuggestionType.CLIPBOARD_URL
+                || suggestion.getType() == OmniboxSuggestionType.CLIPBOARD_TEXT
+                || suggestion.getType() == OmniboxSuggestionType.CLIPBOARD_IMAGE;
+    }
+
+    /**
      * Record histograms for presented suggestions.
      */
     private void recordSuggestionsShown() {
@@ -246,7 +259,7 @@
         return mDataProvider != null ? mDataProvider.getProfile() : null;
     }
 
-    /**m
+    /**
      * Sets the data provider for the toolbar.
      */
     void setToolbarDataProvider(ToolbarDataProvider provider) {
@@ -598,12 +611,16 @@
         };
 
         Resources resources = mContext.getResources();
+        @StringRes int dialogMessageId = R.string.omnibox_confirm_delete;
+        if (isSuggestionFromClipboard(suggestion)) {
+            dialogMessageId = R.string.omnibox_confirm_delete_from_clipboard;
+        }
+
         PropertyModel model =
                 new PropertyModel.Builder(ModalDialogProperties.ALL_KEYS)
                         .with(ModalDialogProperties.CONTROLLER, dialogController)
                         .with(ModalDialogProperties.TITLE, suggestion.getDisplayText())
-                        .with(ModalDialogProperties.MESSAGE, resources,
-                                R.string.omnibox_confirm_delete)
+                        .with(ModalDialogProperties.MESSAGE, resources, dialogMessageId)
                         .with(ModalDialogProperties.POSITIVE_BUTTON_TEXT, resources, R.string.ok)
                         .with(ModalDialogProperties.NEGATIVE_BUTTON_TEXT, resources,
                                 R.string.cancel)
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
index ddcf0e52..1eb4ec8f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/payments/PackageManagerDelegate.java
@@ -19,6 +19,7 @@
 import androidx.annotation.Nullable;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 
 import java.util.List;
 
@@ -50,33 +51,12 @@
     }
 
     /**
-     * Retrieves the single activity that matches the given intent, or null if none found.
-     * @param intent The intent to query.
-     * @return The matching activity.
-     */
-    public ResolveInfo resolveActivity(Intent intent) {
-        ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-        try {
-            return ContextUtils.getApplicationContext().getPackageManager().resolveActivity(
-                    intent, 0);
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
-    }
-
-    /**
      * Retrieves the list of activities that can respond to the given intent.
      * @param intent The intent to query.
      * @return The list of activities that can respond to the intent.
      */
     public List<ResolveInfo> getActivitiesThatCanRespondToIntent(Intent intent) {
-        ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-        try {
-            return ContextUtils.getApplicationContext().getPackageManager().queryIntentActivities(
-                    intent, 0);
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
+        return PackageManagerUtils.queryIntentActivities(intent, 0);
     }
 
     /**
@@ -87,13 +67,7 @@
      * @return The list of activities that can respond to the intent.
      */
     public List<ResolveInfo> getActivitiesThatCanRespondToIntentWithMetaData(Intent intent) {
-        ThreadPolicy oldPolicy = StrictMode.allowThreadDiskReads();
-        try {
-            return ContextUtils.getApplicationContext().getPackageManager().queryIntentActivities(
-                    intent, PackageManager.GET_META_DATA);
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
-        }
+        return PackageManagerUtils.queryIntentActivities(intent, PackageManager.GET_META_DATA);
     }
 
     /**
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/OWNERS b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/OWNERS
new file mode 100644
index 0000000..e441b9a8
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/OWNERS
@@ -0,0 +1,4 @@
+fgorski@chromium.org
+
+# COMPONENT: UI>Browser>Search
+# OS: Android
\ No newline at end of file
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java
new file mode 100644
index 0000000..099df817
--- /dev/null
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetrics.java
@@ -0,0 +1,122 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.search_engines;
+
+import androidx.annotation.IntDef;
+
+import org.chromium.base.ContextUtils;
+import org.chromium.base.VisibleForTesting;
+import org.chromium.base.metrics.RecordHistogram;
+import org.chromium.components.search_engines.TemplateUrl;
+import org.chromium.components.search_engines.TemplateUrlService;
+
+import java.lang.annotation.Retention;
+import java.lang.annotation.RetentionPolicy;
+
+/** Hosts common code for search engine choice metrics reporting. */
+public class SearchEngineChoiceMetrics {
+    /** Key used to store the default Search Engine Type before choice is presented. */
+    @VisibleForTesting
+    public static final String PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE =
+            "search_engine_choice_default_type_before";
+
+    /**
+     * AndroidSearchEngineChoiceEvents defined in tools/metrics/histograms/enums.xml. These values
+     * are persisted to logs. Entries should not be renumbered and numeric values should never be
+     * reused.
+     */
+
+    @IntDef({Events.SNACKBAR_SHOWN, Events.PROMPT_FOLLOWED, Events.SEARCH_ENGINE_CHANGED})
+    @Retention(RetentionPolicy.SOURCE)
+    public @interface Events {
+        int SNACKBAR_SHOWN = 0;
+        int PROMPT_FOLLOWED = 1;
+        int SEARCH_ENGINE_CHANGED = 2;
+        int MAX = 3;
+    }
+
+    /**
+     * Records an event to the search choice histogram. See {@link Events} and histograms.xml for
+     * more details.
+     * @param event The {@link Events} to be reported.
+     */
+    public static void recordEvent(@Events int event) {
+        RecordHistogram.recordEnumeratedHistogram(
+                "Android.SearchEngineChoice.Events", event, Events.MAX);
+    }
+
+    /** Records the search engine type before the user made a choice about which engine to use. */
+    public static void recordSearchEngineTypeBeforeChoice() {
+        @SearchEngineType
+        int currentSearchEngineType = getDefaultSearchEngineType();
+        RecordHistogram.recordEnumeratedHistogram(
+                "Android.SearchEngineChoice.SearchEngineBeforeChoicePrompt",
+                currentSearchEngineType, SearchEngineType.SEARCH_ENGINE_MAX);
+        setPreviousSearchEngineType(currentSearchEngineType);
+    }
+
+    /** Records the search engine type after the user made a choice about which engine to use. */
+    public static void recordSearchEngineTypeAfterChoice() {
+        if (!isSearchEnginePossiblyDifferent()) return;
+
+        @SearchEngineType
+        int previousSearchEngineType = getPreviousSearchEngineType();
+        @SearchEngineType
+        int currentSearchEngineType = getDefaultSearchEngineType();
+        if (previousSearchEngineType != currentSearchEngineType) {
+            recordEvent(Events.SEARCH_ENGINE_CHANGED);
+            RecordHistogram.recordEnumeratedHistogram(
+                    "Android.SearchEngineChoice.ChosenSearchEngine", currentSearchEngineType,
+                    SearchEngineType.SEARCH_ENGINE_MAX);
+        }
+        removePreviousSearchEngineType();
+    }
+
+    /** @return True if the current search engine is possibly different from the previous one. */
+    static boolean isSearchEnginePossiblyDifferent() {
+        return ContextUtils.getAppSharedPreferences().contains(
+                PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE);
+    }
+
+    /** Remove the stored choice from prefs. */
+    @VisibleForTesting
+    static void removePreviousSearchEngineType() {
+        ContextUtils.getAppSharedPreferences()
+                .edit()
+                .remove(PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE)
+                .apply();
+    }
+
+    /** Retrieves the previously set search engine from Android prefs. */
+    @VisibleForTesting
+    @SearchEngineType
+    static int getPreviousSearchEngineType() {
+        return ContextUtils.getAppSharedPreferences().getInt(
+                PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE,
+                SearchEngineType.SEARCH_ENGINE_UNKNOWN);
+    }
+
+    /**
+     * Sets the current default search engine as the previously set search engine in Android prefs.
+     */
+    @VisibleForTesting
+    static void setPreviousSearchEngineType(@SearchEngineType int engine) {
+        ContextUtils.getAppSharedPreferences()
+                .edit()
+                .putInt(PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE, engine)
+                .apply();
+    }
+
+    /** Translates from the default search engine url to the {@link SearchEngineType} int. */
+    @VisibleForTesting
+    @SearchEngineType
+    static int getDefaultSearchEngineType() {
+        TemplateUrlService templateUrlService = TemplateUrlServiceFactory.get();
+        TemplateUrl currentSearchEngine = templateUrlService.getDefaultSearchEngineTemplateUrl();
+        if (currentSearchEngine == null) return SearchEngineType.SEARCH_ENGINE_UNKNOWN;
+        return templateUrlService.getSearchEngineTypeFromTemplateUrl(
+                currentSearchEngine.getKeyword());
+    }
+}
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
index c339786..7f1e749 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotification.java
@@ -6,11 +6,9 @@
 
 import android.content.Context;
 
-import androidx.annotation.IntDef;
 import androidx.annotation.Nullable;
 
 import org.chromium.base.ContextUtils;
-import org.chromium.base.metrics.RecordHistogram;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.ChromeVersionInfo;
@@ -20,11 +18,7 @@
 import org.chromium.chrome.browser.snackbar.Snackbar;
 import org.chromium.chrome.browser.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.snackbar.SnackbarManager.SnackbarController;
-import org.chromium.components.search_engines.TemplateUrl;
-import org.chromium.components.search_engines.TemplateUrlService;
 
-import java.lang.annotation.Retention;
-import java.lang.annotation.RetentionPolicy;
 import java.util.concurrent.TimeUnit;
 
 /**
@@ -40,10 +34,6 @@
     static final String PREF_SEARCH_ENGINE_CHOICE_PRESENTED_VERSION =
             "search_engine_choice_presented_version";
 
-    /** Key used to store the default Search Engine Type before choice is presented. */
-    static final String PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE =
-            "search_engine_choice_default_type_before";
-
     /** Variations parameter name for notification snackbar duration (in seconds). */
     private static final String PARAM_NOTIFICATION_SNACKBAR_DURATION_SECONDS =
             "notification-snackbar-duration-seconds";
@@ -55,18 +45,6 @@
     private static final String PARAM_NOTIFICATION_INVALIDATING_VERSION_NUMBER =
             "notification-invalidating-version-number";
 
-    // AndroidSearchEngineChoiceEvents defined in tools/metrics/histograms/enums.xml.
-    // These values are persisted to logs. Entries should not be renumbered and numeric values
-    // should never be reused.
-    @IntDef({Events.SNACKBAR_SHOWN, Events.PROMPT_FOLLOWED, Events.SEARCH_ENGINE_CHANGED})
-    @Retention(RetentionPolicy.SOURCE)
-    @interface Events {
-        int SNACKBAR_SHOWN = 0;
-        int PROMPT_FOLLOWED = 1;
-        int SEARCH_ENGINE_CHANGED = 2;
-        int MAX = 3;
-    }
-
     /**
      * Snackbar controller for search engine choice notification. It takes the user to the settings
      * page responsible for search engine choice, when button is clicked.
@@ -81,8 +59,8 @@
         @Override
         public void onAction(Object actionData) {
             PreferencesLauncher.launchSettingsPage(mContext, SearchEnginePreference.class);
-            recordEvent(Events.PROMPT_FOLLOWED);
-            recordSearchEngineTypeBeforeChoicePresented();
+            SearchEngineChoiceMetrics.recordEvent(SearchEngineChoiceMetrics.Events.PROMPT_FOLLOWED);
+            SearchEngineChoiceMetrics.recordSearchEngineTypeBeforeChoice();
         }
     }
 
@@ -112,27 +90,12 @@
         if (searchEngineChoiceRequested && !searchEngineChoicePresented) {
             snackbarManager.showSnackbar(buildSnackbarNotification(context));
             updateSearchEngineChoicePresented();
-            recordEvent(Events.SNACKBAR_SHOWN);
-        } else if (isSearchEnginePossiblyDifferent()) {
-            @SearchEngineType
-            int previousSearchEngineType = getPreviousSearchEngineType();
-            @SearchEngineType
-            int currentSearchEngineType = getDefaultSearchEngineType();
-            if (previousSearchEngineType != currentSearchEngineType) {
-                recordEvent(Events.SEARCH_ENGINE_CHANGED);
-                RecordHistogram.recordEnumeratedHistogram(
-                        "Android.SearchEngineChoice.ChosenSearchEngine", currentSearchEngineType,
-                        SearchEngineType.SEARCH_ENGINE_MAX);
-            }
-            removePreviousSearchEngineType();
+            SearchEngineChoiceMetrics.recordEvent(SearchEngineChoiceMetrics.Events.SNACKBAR_SHOWN);
+        } else {
+            SearchEngineChoiceMetrics.recordSearchEngineTypeAfterChoice();
         }
     }
 
-    private static void recordEvent(@Events int event) {
-        RecordHistogram.recordEnumeratedHistogram(
-                "Android.SearchEngineChoice.Events", event, Events.MAX);
-    }
-
     private static Snackbar buildSnackbarNotification(Context context) {
         int durationSeconds = ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.ANDROID_SEARCH_ENGINE_CHOICE_NOTIFICATION,
@@ -193,46 +156,6 @@
                 PARAM_NOTIFICATION_INVALIDATING_VERSION_NUMBER));
     }
 
-    @SearchEngineType
-    private static int getDefaultSearchEngineType() {
-        TemplateUrlService templateUrlService = TemplateUrlServiceFactory.get();
-        TemplateUrl currentSearchEngine = templateUrlService.getDefaultSearchEngineTemplateUrl();
-        if (currentSearchEngine == null) return SearchEngineType.SEARCH_ENGINE_UNKNOWN;
-        return templateUrlService.getSearchEngineTypeFromTemplateUrl(
-                currentSearchEngine.getKeyword());
-    }
-
-    private static void recordSearchEngineTypeBeforeChoicePresented() {
-        @SearchEngineType
-        int currentSearchEngineType = getDefaultSearchEngineType();
-        RecordHistogram.recordEnumeratedHistogram(
-                "Android.SearchEngineChoice.SearchEngineBeforeChoicePrompt",
-                currentSearchEngineType, SearchEngineType.SEARCH_ENGINE_MAX);
-        ContextUtils.getAppSharedPreferences()
-                .edit()
-                .putInt(PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE, currentSearchEngineType)
-                .apply();
-    }
-
-    private static boolean isSearchEnginePossiblyDifferent() {
-        return ContextUtils.getAppSharedPreferences().contains(
-                PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE);
-    }
-
-    @SearchEngineType
-    private static int getPreviousSearchEngineType() {
-        return ContextUtils.getAppSharedPreferences().getInt(
-                PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE,
-                SearchEngineType.SEARCH_ENGINE_UNKNOWN);
-    }
-
-    private static void removePreviousSearchEngineType() {
-        ContextUtils.getAppSharedPreferences()
-                .edit()
-                .remove(PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE)
-                .apply();
-    }
-
     private static int getNotificationSnackbarDuration() {
         return ChromeFeatureList.getFieldTrialParamByFeatureAsInt(
                 ChromeFeatureList.ANDROID_SEARCH_ENGINE_CHOICE_NOTIFICATION,
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
index 7a64a199..ec9ccac2 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/share/ShareHelper.java
@@ -42,6 +42,7 @@
 import org.chromium.base.ContentUriUtils;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.StreamUtil;
 import org.chromium.base.StrictModeContext;
 import org.chromium.base.VisibleForTesting;
@@ -332,8 +333,6 @@
      * sharing.
      * @param activity The activity used to trigger the share action.
      * @param jpegImageData The image data to be shared in jpeg format.
-     * @param name When this is not null, it will share the image directly with the
-     *             {@link ComponentName}
      * @param callback A provided callback function which will act on the generated URI.
      */
     public static void generateUriFromData(
@@ -497,7 +496,7 @@
         final TargetChosenCallback callback = params.getCallback();
         Intent intent = getShareLinkAppCompatibilityIntent();
         PackageManager manager = activity.getPackageManager();
-        List<ResolveInfo> resolveInfoList = manager.queryIntentActivities(intent, 0);
+        List<ResolveInfo> resolveInfoList = PackageManagerUtils.queryIntentActivities(intent, 0);
         assert resolveInfoList.size() > 0;
         if (resolveInfoList.size() == 0) return;
         Collections.sort(resolveInfoList, new ResolveInfo.DisplayNameComparator(manager));
@@ -599,8 +598,8 @@
         boolean isComponentValid = false;
         if (component != null) {
             shareIntent.setPackage(component.getPackageName());
-            PackageManager manager = ContextUtils.getApplicationContext().getPackageManager();
-            List<ResolveInfo> resolveInfoList = manager.queryIntentActivities(shareIntent, 0);
+            List<ResolveInfo> resolveInfoList =
+                    PackageManagerUtils.queryIntentActivities(shareIntent, 0);
             for (ResolveInfo info : resolveInfoList) {
                 ActivityInfo ai = info.activityInfo;
                 if (component.equals(new ComponentName(ai.applicationInfo.packageName, ai.name))) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
index 8aac964..c89aa45 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/InterceptNavigationDelegateImpl.java
@@ -163,7 +163,7 @@
             // not covering the case where a gesture is carried over via a redirect.  This is
             // currently not feasible because we do not see all navigations for iframes and it is
             // better to error on the side of caution and require direct user gestures for iframes.
-            tabRedirectHandler = TabRedirectHandler.create(associatedActivity);
+            tabRedirectHandler = TabRedirectHandler.create();
         } else {
             assert false;
             return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
index 5ecc497..d662480 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabContextMenuItemDelegate.java
@@ -6,7 +6,6 @@
 
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.net.MailTo;
 import android.net.Uri;
 import android.provider.Browser;
@@ -15,6 +14,7 @@
 import androidx.browser.customtabs.CustomTabsIntent;
 
 import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.metrics.RecordUserAction;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.DefaultBrowserInfo;
@@ -241,15 +241,14 @@
         Intent chromeIntent = new Intent(Intent.ACTION_VIEW, Uri.parse(linkUrl));
         chromeIntent.setPackage(applicationContext.getPackageName());
         chromeIntent.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
-        PackageManager packageManager = applicationContext.getPackageManager();
 
-        if (packageManager.queryIntentActivities(chromeIntent, 0).isEmpty()) {
+        if (PackageManagerUtils.queryIntentActivities(chromeIntent, 0).isEmpty()) {
             // If Chrome can't handle intent fallback to using any other VIEW handlers.
             chromeIntent.setPackage(null);
 
             // Query again without the package name set and if there are still no handlers for the
             // URI fail gracefully, and do nothing, since this will still cause a crash if launched.
-            if (packageManager.queryIntentActivities(chromeIntent, 0).isEmpty()) return;
+            if (PackageManagerUtils.queryIntentActivities(chromeIntent, 0).isEmpty()) return;
         }
 
         boolean activityStarted = false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
index c2e3a15..5634fa3 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tab/TabRedirectHandler.java
@@ -5,7 +5,6 @@
 package org.chromium.chrome.browser.tab;
 
 import android.content.ComponentName;
-import android.content.Context;
 import android.content.Intent;
 import android.content.pm.ResolveInfo;
 import android.os.SystemClock;
@@ -14,6 +13,8 @@
 
 import androidx.annotation.Nullable;
 
+import org.chromium.base.ContextUtils;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.UserData;
 import org.chromium.base.UserDataHost;
 import org.chromium.chrome.browser.ChromeFeatureList;
@@ -58,8 +59,6 @@
 
     private boolean mShouldNotOverrideUrlLoadingUntilNewUrlLoading;
 
-    private final Context mContext;
-
     /**
      * Returns {@link TabRedirectHandler} that hangs on to a given {@link Tab}.
      * If not present, creates a new instance and associate it with the {@link UserDataHost}
@@ -71,7 +70,7 @@
         UserDataHost host = tab.getUserDataHost();
         TabRedirectHandler handler = host.getUserData(USER_DATA_KEY);
         if (handler == null) {
-            handler = new TabRedirectHandler(tab.getThemedApplicationContext());
+            handler = new TabRedirectHandler();
             host.setUserData(USER_DATA_KEY, handler);
             tab.addObserver(handler);
         }
@@ -102,13 +101,11 @@
         return oldHandler;
     }
 
-    public static TabRedirectHandler create(Context context) {
-        return new TabRedirectHandler(context);
+    public static TabRedirectHandler create() {
+        return new TabRedirectHandler();
     }
 
-    protected TabRedirectHandler(Context context) {
-        mContext = context;
-    }
+    protected TabRedirectHandler() {}
 
     @Override
     public void onHidden(Tab tab, @TabHidingType int type) {
@@ -126,7 +123,7 @@
     public void updateIntent(Intent intent) {
         clear();
 
-        if (mContext == null || intent == null || !Intent.ACTION_VIEW.equals(intent.getAction())) {
+        if (intent == null || !Intent.ACTION_VIEW.equals(intent.getAction())) {
             return;
         }
 
@@ -142,7 +139,7 @@
                     && ChromeFeatureList.isEnabled(ChromeFeatureList.CCT_EXTERNAL_LINK_HANDLING));
         }
 
-        if (checkIsToChrome) mIsInitialIntentHeadingToChrome = isIntentToChrome(mContext, intent);
+        if (checkIsToChrome) mIsInitialIntentHeadingToChrome = isIntentToChrome(intent);
 
         // A copy of the intent with component cleared to find resolvers.
         mInitialIntent = new Intent(intent).setComponent(null);
@@ -150,8 +147,8 @@
         if (selector != null) selector.setComponent(null);
     }
 
-    private static boolean isIntentToChrome(Context context, Intent intent) {
-        String chromePackageName = context.getPackageName();
+    private static boolean isIntentToChrome(Intent intent) {
+        String chromePackageName = ContextUtils.getApplicationContext().getPackageName();
         return TextUtils.equals(chromePackageName, intent.getPackage())
                 || TextUtils.equals(chromePackageName, IntentUtils.safeGetStringExtra(intent,
                         Browser.EXTRA_APPLICATION_ID));
@@ -267,6 +264,8 @@
      */
     public boolean shouldStayInChrome(boolean hasExternalProtocol,
             boolean isForTrustedCallingApp) {
+        // http://crbug/424029 : Need to stay in Chrome for an intent heading explicitly to Chrome.
+        // http://crbug/881740 : Relax stay in Chrome restriction for Custom Tabs.
         return (mIsInitialIntentHeadingToChrome && !hasExternalProtocol)
                 || shouldNavigationTypeStayInChrome(isForTrustedCallingApp);
     }
@@ -325,8 +324,8 @@
         return mLastCommittedEntryIndexBeforeStartingNavigation;
     }
 
-    private static List<ComponentName> getIntentHandlers(Context context, Intent intent) {
-        List<ResolveInfo> list = context.getPackageManager().queryIntentActivities(intent, 0);
+    private static List<ComponentName> getIntentHandlers(Intent intent) {
+        List<ResolveInfo> list = PackageManagerUtils.queryIntentActivities(intent, 0);
         List<ComponentName> nameList = new ArrayList<ComponentName>();
         for (ResolveInfo r : list) {
             nameList.add(new ComponentName(r.activityInfo.packageName, r.activityInfo.name));
@@ -344,9 +343,9 @@
             return false;
         }
 
-        List<ComponentName> newList = getIntentHandlers(mContext, intent);
+        List<ComponentName> newList = getIntentHandlers(intent);
         if (mCachedResolvers.isEmpty()) {
-            mCachedResolvers.addAll(getIntentHandlers(mContext, mInitialIntent));
+            mCachedResolvers.addAll(getIntentHandlers(mInitialIntent));
         }
         for (ComponentName name : newList) {
             if (!mCachedResolvers.contains(name)) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java
index 06ec0d0..fa2b5ac0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/tabmodel/TabModelFilter.java
@@ -26,6 +26,7 @@
             Collections.unmodifiableList(new ArrayList<Tab>());
     private TabModel mTabModel;
     protected ObserverList<TabModelObserver> mFilteredObservers = new ObserverList<>();
+    private boolean mTabRestoreCompleted;
 
     public TabModelFilter(TabModel tabModel) {
         mTabModel = tabModel;
@@ -88,7 +89,7 @@
      * @return An unmodifiable list of {@link Tab}s that are not related to any tabs
      */
     @NonNull
-    final public List<Tab> getTabsWithNoOtherRelatedTabs() {
+    public final List<Tab> getTabsWithNoOtherRelatedTabs() {
         List<Tab> tabs = new ArrayList<>();
         for (int i = 0; i < mTabModel.getCount(); i++) {
             Tab tab = mTabModel.getTabAt(i);
@@ -141,6 +142,13 @@
     protected abstract void resetFilterStateInternal();
 
     /**
+     * @return Whether the tab model is fully restored.
+     */
+    public boolean isTabModelRestored() {
+        return mTabRestoreCompleted || isIncognito();
+    }
+
+    /**
      * Concrete class requires to define what's the behavior when {@link TabModel} removed a
      * {@link Tab}.
      * @param tab {@link Tab} had removed.
@@ -264,6 +272,8 @@
 
     @Override
     public void restoreCompleted() {
+        mTabRestoreCompleted = true;
+
         if (getCount() != 0) reorder();
 
         for (TabModelObserver observer : mFilteredObservers) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
index e175584..d02af4f 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/LocationBarModel.java
@@ -389,7 +389,7 @@
 
     @VisibleForTesting
     @DrawableRes
-    static int getSecurityIconResource(
+    int getSecurityIconResource(
             int securityLevel, boolean isSmallDevice, boolean isOfflinePage, boolean isPreview) {
         // Checking for a preview first because one possible preview type is showing an offline page
         // on a slow connection. In this case, the previews UI takes precedence.
@@ -401,7 +401,8 @@
 
         switch (securityLevel) {
             case ConnectionSecurityLevel.NONE:
-                return isSmallDevice && !SearchEngineLogoUtils.shouldShowSearchEngineLogo()
+                return isSmallDevice
+                                && !SearchEngineLogoUtils.shouldShowSearchEngineLogo(isIncognito())
                         ? 0
                         : R.drawable.omnibox_info;
             case ConnectionSecurityLevel.HTTP_SHOW_WARNING:
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
index cf31ed75..5d9243d 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/ToolbarManager.java
@@ -1307,7 +1307,8 @@
 
                 mSearchEngine = searchEngine;
                 mLocationBar.updateSearchEngineStatusIcon(
-                        SearchEngineLogoUtils.shouldShowSearchEngineLogo(),
+                        SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                                mLocationBarModel.isIncognito()),
                         TemplateUrlServiceFactory.get().isDefaultSearchEngineGoogle(),
                         SearchEngineLogoUtils.getSearchLogoUrl());
                 mToolbar.onDefaultSearchEngineChanged();
@@ -1317,7 +1318,7 @@
 
         // Force an update once to populate initial data.
         mLocationBar.updateSearchEngineStatusIcon(
-                SearchEngineLogoUtils.shouldShowSearchEngineLogo(),
+                SearchEngineLogoUtils.shouldShowSearchEngineLogo(mLocationBarModel.isIncognito()),
                 TemplateUrlServiceFactory.get().isDefaultSearchEngineGoogle(),
                 SearchEngineLogoUtils.getSearchLogoUrl());
     }
@@ -1864,7 +1865,8 @@
                 }
                 mLocationBar.setAutocompleteProfile(profile);
                 mLocationBar.setShowIconsWhenUrlFocused(
-                        SearchEngineLogoUtils.shouldShowSearchEngineLogo());
+                        SearchEngineLogoUtils.shouldShowSearchEngineLogo(
+                                mLocationBarModel.isIncognito()));
             }
             mCurrentProfile = profile;
         }
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
index 89c8e6e..14c4092 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/toolbar/top/ToolbarPhone.java
@@ -995,7 +995,8 @@
         // for the dse icon being laid out when focused. This also affects the UrlBar, which is
         // handled below. See comments in LocationBar#getLocationBarOffsetForFocusAnimation() for
         // implementation details.
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+        boolean isIncognito = getToolbarDataProvider().isIncognito();
+        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo(isIncognito)) {
             locationBarBaseTranslationX +=
                     mLocationBar.getLocationBarOffsetForFocusAnimation(hasFocus());
         }
@@ -1042,9 +1043,11 @@
         // When the dse icon is enabled, the UrlBar needs additional translation to compensate for
         // the additional translation applied to the LocationBar. See comments in
         // LocationBar#getUrlBarTranslationXForToolbarAnimation() for implementation details.
-        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo()) {
+        if (SearchEngineLogoUtils.shouldShowSearchEngineLogo(isIncognito)) {
             mUrlBar.setTranslationX(mLocationBar.getUrlBarTranslationXForToolbarAnimation(
                     mUrlExpansionPercent, hasFocus()));
+        } else if (SearchEngineLogoUtils.isSearchEngineLogoEnabled()) {
+            mUrlBar.setTranslationX(0);
         }
 
         if (!mExperimentalButtonAnimationRunning) {
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
index aa2b11c..96b96f0 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/util/FeatureUtilities.java
@@ -8,7 +8,6 @@
 import android.annotation.TargetApi;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.os.Build;
 import android.os.Bundle;
@@ -22,6 +21,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.FieldTrialList;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.SysUtils;
 import org.chromium.base.ThreadUtils;
 import org.chromium.base.VisibleForTesting;
@@ -99,18 +99,15 @@
      * is handled by any {@link android.app.Activity}s in the system.  The result will be cached for
      * future calls.  Passing {@code false} to {@code useCachedValue} will force it to re-query any
      * {@link android.app.Activity}s that can process the {@link Intent}.
-     * @param context        The {@link Context} to use to check to see if the {@link Intent} will
-     *                       be handled.
      * @param useCachedValue Whether or not to use the cached value from a previous result.
      * @return {@code true} if recognition is supported.  {@code false} otherwise.
      */
-    public static boolean isRecognitionIntentPresent(Context context, boolean useCachedValue) {
+    public static boolean isRecognitionIntentPresent(boolean useCachedValue) {
         ThreadUtils.assertOnUiThread();
         if (sHasRecognitionIntentHandler == null || !useCachedValue) {
-            PackageManager pm = context.getPackageManager();
-            List<ResolveInfo> activities = pm.queryIntentActivities(
+            List<ResolveInfo> activities = PackageManagerUtils.queryIntentActivities(
                     new Intent(RecognizerIntent.ACTION_RECOGNIZE_SPEECH), 0);
-            sHasRecognitionIntentHandler = activities.size() > 0;
+            sHasRecognitionIntentHandler = !activities.isEmpty();
         }
 
         return sHasRecognitionIntentHandler;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProvider.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProvider.java
index 4189231..583daa9 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProvider.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebApkIntentDataProvider.java
@@ -22,6 +22,7 @@
 import org.chromium.base.ApiCompatibilityUtils;
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.blink_public.platform.WebDisplayMode;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.ShortcutHelper;
@@ -483,9 +484,8 @@
         shareIntent.setAction(Intent.ACTION_SEND);
         shareIntent.setPackage(webApkPackageName);
         shareIntent.setType("*/*");
-        List<ResolveInfo> resolveInfos =
-                ContextUtils.getApplicationContext().getPackageManager().queryIntentActivities(
-                        shareIntent, PackageManager.GET_META_DATA);
+        List<ResolveInfo> resolveInfos = PackageManagerUtils.queryIntentActivities(
+                shareIntent, PackageManager.GET_META_DATA);
 
         for (ResolveInfo resolveInfo : resolveInfos) {
             Bundle shareTargetMetaData = resolveInfo.activityInfo.metaData;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java
index b1e0f83..e1843e7 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/webapps/WebappTabDelegate.java
@@ -7,11 +7,14 @@
 import android.content.pm.PackageManager;
 import android.content.pm.ResolveInfo;
 import android.net.Uri;
-import android.os.StrictMode;
 import android.provider.Browser;
 
+import androidx.browser.customtabs.CustomTabsIntent;
+
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
+import org.chromium.base.StrictModeContext;
 import org.chromium.chrome.browser.IntentHandler;
 import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider;
 import org.chromium.chrome.browser.customtabs.CustomTabIntentDataProvider.LaunchSourceType;
@@ -26,8 +29,6 @@
 import java.net.URISyntaxException;
 import java.util.List;
 
-import androidx.browser.customtabs.CustomTabsIntent;
-
 /**
  * Asynchronously creates Tabs for navigation originating from an installed PWA.
  *
@@ -76,34 +77,30 @@
             return false;
         }
 
-        // See http://crbug.com/613977 for more context.
-        StrictMode.ThreadPolicy oldPolicy = StrictMode.allowThreadDiskWrites();
-        try {
-            List<ResolveInfo> handlers =
-                    ContextUtils.getApplicationContext().getPackageManager().queryIntentActivities(
-                            intent, PackageManager.GET_RESOLVED_FILTER);
+        List<ResolveInfo> handlers = PackageManagerUtils.queryIntentActivities(
+                intent, PackageManager.GET_RESOLVED_FILTER);
 
-            boolean foundSpecializedHandler = false;
+        boolean foundSpecializedHandler = false;
 
-            for (String result : ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(
-                         handlers, null)) {
-                if (result.equals(mApkPackageName)) {
-                    // Current WebAPK matches and this is a HTTP(s) link. Don't intercept so that we
-                    // can launch a CCT. See http://crbug.com/831806 for more context.
-                    return false;
-                } else {
-                    foundSpecializedHandler = true;
-                }
+        for (String result :
+                ExternalNavigationDelegateImpl.getSpecializedHandlersWithFilter(handlers, null)) {
+            if (result.equals(mApkPackageName)) {
+                // Current WebAPK matches and this is a HTTP(s) link. Don't intercept so that we
+                // can launch a CCT. See http://crbug.com/831806 for more context.
+                return false;
+            } else {
+                foundSpecializedHandler = true;
             }
+        }
 
-            // Launch a native app iff there is a specialized handler for a given URL.
-            if (foundSpecializedHandler) {
-                intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+        // Launch a native app iff there is a specialized handler for a given URL.
+        if (foundSpecializedHandler) {
+            intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK);
+            // StartActivity may cause StrictMode violations on Android K.
+            try (StrictModeContext ignored = StrictModeContext.allowDiskWrites()) {
                 ContextUtils.getApplicationContext().startActivity(intent);
-                return true;
             }
-        } finally {
-            StrictMode.setThreadPolicy(oldPolicy);
+            return true;
         }
 
         return false;
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java
index 03331e4..d19d5eb 100644
--- a/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java
+++ b/chrome/android/java/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetController.java
@@ -4,16 +4,12 @@
 
 package org.chromium.chrome.browser.widget.bottomsheet;
 
-import android.app.Activity;
-
-import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ActivityTabProvider;
 import org.chromium.chrome.browser.ActivityTabProvider.HintlessActivityTabObserver;
 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanel;
 import org.chromium.chrome.browser.compositor.bottombar.OverlayPanelManager;
 import org.chromium.chrome.browser.lifecycle.ActivityLifecycleDispatcher;
 import org.chromium.chrome.browser.lifecycle.Destroyable;
-import org.chromium.chrome.browser.snackbar.SnackbarManager;
 import org.chromium.chrome.browser.tab.EmptyTabObserver;
 import org.chromium.chrome.browser.tab.Tab;
 import org.chromium.chrome.browser.tab.TabObserver;
@@ -45,9 +41,6 @@
     /** A handle to the {@link BottomSheet} that this class controls. */
     private final BottomSheet mBottomSheet;
 
-    /** A handle to the {@link SnackbarManager} that manages snackbars inside the bottom sheet. */
-    private final SnackbarManager mSnackbarManager;
-
     /** A {@link VrModeObserver} that observers events of entering and exiting VR mode. */
     private final VrModeObserver mVrModeObserver;
 
@@ -71,22 +64,18 @@
 
     /**
      * Build a new controller of the bottom sheet.
-     * @param activity An activity for context.
      * @param lifecycleDispatcher The {@link ActivityLifecycleDispatcher} for the {@code activity}.
      * @param activityTabProvider The provider of the activity's current tab.
      * @param scrim The scrim that shows when the bottom sheet is opened.
      * @param bottomSheet The bottom sheet that this class will be controlling.
      * @param overlayManager The manager for overlay panels to attach listeners to.
      */
-    public BottomSheetController(final Activity activity,
-            final ActivityLifecycleDispatcher lifecycleDispatcher,
+    public BottomSheetController(final ActivityLifecycleDispatcher lifecycleDispatcher,
             final ActivityTabProvider activityTabProvider, final ScrimView scrim,
             BottomSheet bottomSheet, OverlayPanelManager overlayManager) {
         mBottomSheet = bottomSheet;
         mTabProvider = activityTabProvider;
         mOverlayPanelManager = overlayManager;
-        mSnackbarManager = new SnackbarManager(
-                activity, mBottomSheet.findViewById(R.id.bottom_sheet_snackbar_container));
 
         // Initialize the queue with a comparator that checks content priority.
         mContentQueue = new PriorityQueue<>(INITIAL_QUEUE_CAPACITY,
@@ -202,11 +191,6 @@
                 mIsProcessingHideRequest = false;
                 showNextContent(true);
             }
-
-            @Override
-            public void onSheetOffsetChanged(float heightFraction, float offsetPx) {
-                mSnackbarManager.dismissAllSnackbars();
-            }
         });
     }
 
@@ -254,13 +238,6 @@
     }
 
     /**
-     * @return The {@link SnackbarManager} that manages snackbars inside the bottom sheet.
-     */
-    public SnackbarManager getSnackbarManager() {
-        return mSnackbarManager;
-    }
-
-    /**
      * Request that some content be shown in the bottom sheet.
      * @param content The content to be shown in the bottom sheet.
      * @param animate Whether the appearance of the bottom sheet should be animated.
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
index c241025c..584533c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_de.xtb
@@ -729,7 +729,7 @@
 <translation id="6364438453358674297">Vorschlag aus Verlauf entfernen?</translation>
 <translation id="6369229450655021117">Von hier aus können Sie im Web suchen, Inhalte mit Freunden teilen und sich geöffnete Seiten ansehen.</translation>
 <translation id="6378173571450987352">Details: Nach der Menge der verwendeten Daten sortiert</translation>
-<translation id="6381421346744604172">Websites abdunkeln</translation>
+<translation id="6381421346744604172">Websites verdunkeln</translation>
 <translation id="6388207532828177975">Löschen &amp; zurücksetzen</translation>
 <translation id="6393863479814692971">Chrome benötigt für diese Website die Berechtigung, auf Ihre Kamera und Ihr Mikrofon zuzugreifen.</translation>
 <translation id="6395288395575013217">LINK</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
index f7726f69..cc681703 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fa.xtb
@@ -429,7 +429,7 @@
 <translation id="423219824432660969">‏رمزگذاری داده‌های همگام‌سازی‌شده با گذرواژه Google از <ph name="TIME" /></translation>
 <translation id="4242533952199664413">باز کردن تنظیمات</translation>
 <translation id="4256782883801055595">مجوزهای متن‌باز</translation>
-<translation id="4259722352634471385">پیمایش مسدود است: <ph name="URL" /></translation>
+<translation id="4259722352634471385">پیمایش مسدود شده است: <ph name="URL" /></translation>
 <translation id="4269820728363426813">کپی نشانی پیوند</translation>
 <translation id="4275663329226226506">رسانه</translation>
 <translation id="4278390842282768270">مجاز است</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
index 19eac1d5..f9bc17c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_fil.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">Alisin ang suhestyon mula sa history?</translation>
 <translation id="6369229450655021117">Mula rito, maaari kang maghanap sa web, magbahagi sa mga kaibigan, at tumingin ng mga bukas na page</translation>
 <translation id="6378173571450987352">Mga detalye: Pinagbukud-bukod ayon sa laki ng nagamit na data</translation>
+<translation id="6381421346744604172">Padilimin ang mga website</translation>
 <translation id="6388207532828177975">I-clear at i-reset</translation>
 <translation id="6393863479814692971">Kailangan ng Chrome ng pahintulot na i-access ang iyong camera at mikropono para sa site na ito.</translation>
 <translation id="6395288395575013217">LINK</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">Magtanong bago payagan ang mga site na magpadala ng mga notification (inirerekomenda)</translation>
 <translation id="9139318394846604261">Shopping</translation>
 <translation id="9155898266292537608">Makakapaghanap ka rin gamit ang mabilisang pag-tap sa isang salita</translation>
+<translation id="9169507124922466868">Nakabukas nang kalahati ang history ng pag-navigate</translation>
 <translation id="9188680907066685419">Mag-sign out sa pinamamahalaang account</translation>
 <translation id="9204836675896933765">1 file ang natitira</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
index 90709a42..69540819 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_hi.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">सुझाव को इतिहास से निकालें?</translation>
 <translation id="6369229450655021117">यहां से, आप वेब खोज सकते हैं, दोस्तों के साथ शेयर कर सकते हैं और खुले हुए पेज देख सकते हैं</translation>
 <translation id="6378173571450987352">जानकारी: इस्तेमाल किए गए डेटा की मात्रा के अनुसार क्रम से लगाया गया</translation>
+<translation id="6381421346744604172">वेबसाइटों को गहरा करने का विकल्प</translation>
 <translation id="6388207532828177975">साफ़ करें और रीसेट करें</translation>
 <translation id="6393863479814692971">Chrome को इस साइट के लिए आपका कैमरा और माइक्रोफ़ोन के एक्सेस करने की अनुमति चाहिए.</translation>
 <translation id="6395288395575013217">लिंक</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">साइटों को सूचनाएं भेजने से पहले अनुमति लेना ज़रूरी बनाएं (सुझाया गया)</translation>
 <translation id="9139318394846604261">शॉपिंग</translation>
 <translation id="9155898266292537608">आप किसी शब्द पर बस एक टैप करके भी खोज सकते हैं</translation>
+<translation id="9169507124922466868">नेविगेशन का इतिहास आधा ही खुला हुआ है</translation>
 <translation id="9188680907066685419">प्रबंधित खाते से प्रस्थान करें</translation>
 <translation id="9204836675896933765">1 फ़ाइल बची है</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
index fcb0735..b56e7e9 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_iw.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">האם להסיר את ההצעה מההיסטוריה?</translation>
 <translation id="6369229450655021117">מכאן אפשר לחפש באינטרנט, לשתף עם חברים ולראות דפים פתוחים</translation>
 <translation id="6378173571450987352">פרטים: מיון לפי נפח הנתונים שנצרכו</translation>
+<translation id="6381421346744604172">תצוגה כהה יותר של אתרים</translation>
 <translation id="6388207532828177975">ניקוי ואיפוס</translation>
 <translation id="6393863479814692971">‏Chrome זקוק להרשאת גישה אל המצלמה והמיקרופון בשביל האתר הזה.</translation>
 <translation id="6395288395575013217">קישור</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">יש לשאול לפני שמאפשרים לאתרים לשלוח הודעות (מומלץ)</translation>
 <translation id="9139318394846604261">קניות</translation>
 <translation id="9155898266292537608">אפשר גם להתחיל חיפוש על-ידי הקשה קצרה על מילה</translation>
+<translation id="9169507124922466868">היסטוריית הניווט פתוחה למחצה</translation>
 <translation id="9188680907066685419">צא מהחשבון המנוהל</translation>
 <translation id="9204836675896933765">נותר קובץ אחד</translation>
 <translation id="9206873250291191720">א</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
index 543ab14..d46fa14 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ja.xtb
@@ -1021,7 +1021,7 @@
 <translation id="8445448999790540984">パスワードをエクスポートできません</translation>
 <translation id="8447861592752582886">デバイスの許可を取り消します</translation>
 <translation id="8461694314515752532">同期データを同期パスフレーズで暗号化する</translation>
-<translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" />がインターネットに接続していることを確認してください</translation>
+<translation id="8466613982764129868"><ph name="TARGET_DEVICE_NAME" /> がインターネットに接続していることを確認してください</translation>
 <translation id="8485434340281759656"><ph name="FILE_SIZE" /> <ph name="SEPARATOR" /> <ph name="DESCRIPTION" /></translation>
 <translation id="8487700953926739672">オフラインでの利用</translation>
 <translation id="8489271220582375723">履歴ページを開く</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
index d56688e0..3c217a7 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_kn.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">ಇತಿಹಾಸದಿಂದ ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation>
 <translation id="6369229450655021117">ಇಲ್ಲಿಂದ, ನೀವು ವೆಬ್‌‍ನಲ್ಲಿ ಹುಡುಕಬಹುದು, ಸ್ನೇಹಿತರ ಜೊತೆ ಹಂಚಿಕೊಳ್ಳಬಹುದು ಮತ್ತು ತೆರೆದ ಪುಟಗಳನ್ನು ನೋಡಬಹುದು</translation>
 <translation id="6378173571450987352">ವಿವರಗಳು: ಡೇಟಾ ಬಳಕೆಯ ಪ್ರಮಾಣದ ಆಧಾರದಲ್ಲಿ ವಿಂಗಡಿಸಲಾಗಿದೆ</translation>
+<translation id="6381421346744604172">ಡಾರ್ಕನ್ ವೆಬ್‌ಸೈಟ್‌ಗಳು</translation>
 <translation id="6388207532828177975">ತೆರವುಗೊಳಿಸಿ &amp; ಮರುಹೊಂದಿಸಿ</translation>
 <translation id="6393863479814692971">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಮತ್ತು ಮೈಕ್ರೊಫೋನ್ ಪ್ರವೇಶಿಸಲು Chrome ಗೆ ಅನುಮತಿಸುವ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="6395288395575013217">ಲಿಂಕ್</translation>
@@ -1111,6 +1112,7 @@
 <translation id="9139068048179869749">ಅಧಿಸೂಚನೆಗಳನ್ನು ಕಳುಹಿಸಲು ಸೈಟ್‌ಗಳಿಗೆ ಅನುಮತಿಸುವ ಮೊದಲು ಕೇಳಿ (ಶಿಫಾರಸು ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="9139318394846604261">ಶಾಪಿಂಗ್</translation>
 <translation id="9155898266292537608">ನೀವು ಪದವನ್ನು ಕ್ಷಿಪ್ರವಾಗಿ ಟ್ಯಾಪ್ ಮಾಡುವ ಮೂಲಕವೂ ಹುಡುಕಬಹುದು</translation>
+<translation id="9169507124922466868">ನ್ಯಾವಿಗೇಷನ್ ಇತಿಹಾಸವು ಅರ್ಧ-ತೆರೆದಿದೆ</translation>
 <translation id="9188680907066685419">ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯಿಂದ ಸೈನ್ ಔಟ್ ಮಾಡಿ</translation>
 <translation id="9204836675896933765">1 ಫೈಲ್ ಬಾಕಿ ಉಳಿದಿದೆ</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
index 99da3c6..cc8335e 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_mr.xtb
@@ -609,7 +609,7 @@
 <translation id="5516455585884385570">सूचना सेटिंग्ज उघडा</translation>
 <translation id="5517095782334947753">आपल्याकडे <ph name="FROM_ACCOUNT" /> मधील बुकमार्क, इतिहास, पासवर्ड आणि अन्य सेटिंग्ज आहेत.</translation>
 <translation id="5524843473235508879">रीडिरेक्‍ट ब्लॉक केले.</translation>
-<translation id="5527082711130173040">डिव्हाइस स्कॅन करण्‍यासाठी Chrome ला स्थान अॅक्सेसची आवश्यकता असते. <ph name="BEGIN_LINK1" />परवानग्या अपडेट करा<ph name="END_LINK1" />. या डिव्हाइससाठी स्थान अॅक्सेस देखील <ph name="BEGIN_LINK2" /> बंद केला आहे<ph name="END_LINK2" />.</translation>
+<translation id="5527082711130173040">डिव्हाइस स्कॅन करण्‍यासाठी Chrome ला स्थान अॅक्सेसची आवश्यकता असते. <ph name="BEGIN_LINK1" />परवानग्या अपडेट करा<ph name="END_LINK1" />. स्थान अॅक्सेस देखील <ph name="BEGIN_LINK2" />या डिव्हाइसाठी बंद केला आहे<ph name="END_LINK2" />.</translation>
 <translation id="5527111080432883924">साइटला क्लिपबोर्डमधून मजकूर आणि इमेज रीड करण्याची अनुमती देण्यापूर्वी विचारा (शिफारस केली)</translation>
 <translation id="5530766185686772672">गुप्त टॅब बंद करा</translation>
 <translation id="5534334044554683961">तुम्ही VR वापरत असताना, ही साइट कदाचित पुढील गोष्टींबद्दल अधिक माहिती मिळवू शकेल:
@@ -766,7 +766,7 @@
 <translation id="6643649862576733715">वाचवलेल्या डेटानुसार क्रमाने लावा</translation>
 <translation id="6648977384226967773">{CONTACT,plural, =1{<ph name="CONTACT_PREVIEW" />\u2026 आणि <ph name="NUMBER_OF_ADDITIONAL_CONTACTS" /> अधिक}other{<ph name="CONTACT_PREVIEW" />\u2026 आणि <ph name="NUMBER_OF_ADDITIONAL_CONTACTS" /> अधिक}}</translation>
 <translation id="6649642165559792194">इमेज <ph name="BEGIN_NEW" />नवीन<ph name="END_NEW" /> चे पूर्वावलोकन करा</translation>
-<translation id="6656545060687952787">डिव्‍हाइस स्कॅन करण्‍यासाठी Chrome ला स्थान अॅक्सेसची आवश्‍यकता असते. <ph name="BEGIN_LINK" />परवानग्या अपडेट करा<ph name="END_LINK" /></translation>
+<translation id="6656545060687952787">डिव्हाइस स्कॅन करण्‍यासाठी Chrome ला स्थान अॅक्सेसची आवश्‍यकता असते. <ph name="BEGIN_LINK" />परवानग्या अपडेट करा<ph name="END_LINK" /></translation>
 <translation id="6657585470893396449">पासवर्ड</translation>
 <translation id="6659594942844771486">टॅब</translation>
 <translation id="666731172850799929"><ph name="APP_NAME" /> मध्ये उघडा</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
index f20ee89..fc48f9c 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ro.xtb
@@ -729,7 +729,7 @@
 <translation id="6364438453358674297">Elimini sugestia din istoric?</translation>
 <translation id="6369229450655021117">De aici, poți să cauți pe web, să trimiți fișiere prietenilor și să vezi paginile deschise</translation>
 <translation id="6378173571450987352">Detalii: sortate după volumul de date folosite</translation>
-<translation id="6381421346744604172">Site-uri Darken</translation>
+<translation id="6381421346744604172">Întunecă site-urile</translation>
 <translation id="6388207532828177975">Șterge și resetează</translation>
 <translation id="6393863479814692971">Chrome are nevoie de permisiune ca să acceseze camera foto și microfonul pentru acest site.</translation>
 <translation id="6395288395575013217">LINK</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
index 59cb5aa..be799c9 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_ta.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">வரலாற்றிலிருந்து பரிந்துரையை அகற்றவா?</translation>
 <translation id="6369229450655021117">இங்கிருந்தபடியே இணையத்தில் தேடலாம், நண்பர்களுடன் உள்ளடக்கங்களைப் பகிரலாம், திறந்துள்ள பக்கங்களைப் பார்க்கலாம்</translation>
 <translation id="6378173571450987352">விவரங்கள்: பயன்படுத்திய டேட்டா அளவின்படி வரிசைப்படுத்தப்பட்டுள்ளன</translation>
+<translation id="6381421346744604172">இணையதளங்களை டார்க்காக மாற்று</translation>
 <translation id="6388207532828177975">அழித்து, மீட்டமைக்கவும்</translation>
 <translation id="6393863479814692971">இந்தத் தளத்திற்காகக் கேமராவையும் மைக்ரோஃபோனையும் அணுக, Chromeமுக்கு அனுமதி தேவை.</translation>
 <translation id="6395288395575013217">இணைப்பு</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">அறிவிப்புகளை அனுப்ப தளங்களை அனுமதிக்கும் முன் கேள் (பரிந்துரைக்கப்படுகிறது)</translation>
 <translation id="9139318394846604261">ஷாப்பிங்</translation>
 <translation id="9155898266292537608">ஒரு சொல்லைத் தட்டி உடனடியாகவும் தேடலாம்</translation>
+<translation id="9169507124922466868">வழிசெலுத்தல் வரலாறு பாதியளவு திறந்துள்ளது</translation>
 <translation id="9188680907066685419">நிர்வகிக்கப்படும் கணக்கிலிருந்து வெளியேறு</translation>
 <translation id="9204836675896933765">1 கோப்பு மீதமுள்ளது</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
index 94a6bef..6298eba 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_vi.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">Xóa đề xuất khỏi lịch sử?</translation>
 <translation id="6369229450655021117">Từ đây, bạn có thể tìm kiếm trên web, chia sẻ với bạn bè và xem các trang đang mở</translation>
 <translation id="6378173571450987352">Thông tin chi tiết: Sắp xếp theo lượng dữ liệu đã dùng</translation>
+<translation id="6381421346744604172">Làm tối trang web</translation>
 <translation id="6388207532828177975">Xóa và đặt lại</translation>
 <translation id="6393863479814692971">Chrome cần có quyền truy cập máy ảnh và micrô của bạn cho trang web này.</translation>
 <translation id="6395288395575013217">LIÊN KẾT</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">Hỏi trước khi cho phép trang web gửi thông báo (được đề xuất)</translation>
 <translation id="9139318394846604261">Mua sắm</translation>
 <translation id="9155898266292537608">Bạn cũng có thể tìm kiếm bằng cách nhấn nhanh vào một từ</translation>
+<translation id="9169507124922466868">Lịch sử di chuyển đang mở ở nửa dưới màn hình</translation>
 <translation id="9188680907066685419">Đăng xuất khỏi tài khoản được quản lý</translation>
 <translation id="9204836675896933765">Còn lại 1 tệp</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
index 202eface..cb8d17e 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-CN.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">要从历史记录中移除建议吗?</translation>
 <translation id="6369229450655021117">您可从这里搜索网上内容、与好友分享内容以及查看已打开的网页</translation>
 <translation id="6378173571450987352">详细信息:按已使用的数据流量排序</translation>
+<translation id="6381421346744604172">调暗网站</translation>
 <translation id="6388207532828177975">清除并重置</translation>
 <translation id="6393863479814692971">Chrome 需要获得相应权限,才能允许此网站使用您的摄像头和麦克风。</translation>
 <translation id="6395288395575013217">链接</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">网站发送通知前需先询问并获得许可(推荐)</translation>
 <translation id="9139318394846604261">购物</translation>
 <translation id="9155898266292537608">您也可以通过快速点按某个字词进行搜索</translation>
+<translation id="9169507124922466868">导航历史记录已半屏打开</translation>
 <translation id="9188680907066685419">退出受管理的帐号</translation>
 <translation id="9204836675896933765">还剩 1 个文件</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
index a0ca7dc..d6edc4d 100644
--- a/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
+++ b/chrome/android/java/strings/translations/android_chrome_strings_zh-TW.xtb
@@ -729,6 +729,7 @@
 <translation id="6364438453358674297">從歷史記錄中移除建議項目?</translation>
 <translation id="6369229450655021117">在這裡,你可以搜尋網路、與好友分享內容及查看開啟的網頁</translation>
 <translation id="6378173571450987352">詳細資料:依使用資料量排序</translation>
+<translation id="6381421346744604172">調暗網站顏色</translation>
 <translation id="6388207532828177975">清除並重設</translation>
 <translation id="6393863479814692971">Chrome 需要相關權限,才能讓這個網站使用你的攝影機和麥克風。</translation>
 <translation id="6395288395575013217">連結</translation>
@@ -1110,6 +1111,7 @@
 <translation id="9139068048179869749">允許網站傳送通知前,必須先詢問你 (建議)</translation>
 <translation id="9139318394846604261">購物</translation>
 <translation id="9155898266292537608">快速輕觸字詞也可以展開搜尋</translation>
+<translation id="9169507124922466868">已在畫面下半部顯示瀏覽記錄</translation>
 <translation id="9188680907066685419">登出受管理的帳戶</translation>
 <translation id="9204836675896933765">還剩 1 個檔案</translation>
 <translation id="9206873250291191720">A</translation>
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java
index 7a21d380..b65f527 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/NavigationPopupTest.java
@@ -158,7 +158,11 @@
     @MediumTest
     @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
     @Feature({"Navigation"})
-    public void testLongPressBackTriggering() throws ExecutionException {
+    @CommandLineFlags.Add({"force-fieldtrials=GestureNavigation/Disabled",
+            "force-fieldtrial-params=GestureNavigation.Disabled:"
+                    + "overscroll_history_navigation_bottom_sheet/false"})
+    public void
+    testLongPressBackTriggering() throws ExecutionException {
         KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> { mActivityTestRule.getActivity().onKeyDown(KeyEvent.KEYCODE_BACK, event); });
@@ -174,7 +178,11 @@
     @SmallTest
     @Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
     @Feature({"Navigation"})
-    public void testLongPressBackTriggering_Cancellation() throws ExecutionException {
+    @CommandLineFlags.Add({"force-fieldtrials=GestureNavigation/Disabled",
+            "force-fieldtrial-params=GestureNavigation.Disabled:"
+                    + "overscroll_history_navigation_bottom_sheet/false"})
+    public void
+    testLongPressBackTriggering_Cancellation() throws ExecutionException {
         TestThreadUtils.runOnUiThreadBlocking(() -> {
             KeyEvent event = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
             mActivityTestRule.getActivity().onKeyDown(KeyEvent.KEYCODE_BACK, event);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java
index 2ac3685..54ac075 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/download/OMADownloadHandlerTest.java
@@ -7,7 +7,6 @@
 import android.app.DownloadManager;
 import android.content.Context;
 import android.content.Intent;
-import android.content.pm.PackageManager;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.MediumTest;
 import android.support.test.filters.SmallTest;
@@ -186,22 +185,21 @@
     @SmallTest
     @Feature({"Download"})
     public void testGetOpennableType() {
-        PackageManager pm = InstrumentationRegistry.getContext().getPackageManager();
         OMADownloadHandler.OMAInfo info = new OMADownloadHandler.OMAInfo();
-        Assert.assertEquals(OMADownloadHandler.getOpennableType(pm, info), null);
+        Assert.assertEquals(OMADownloadHandler.getOpennableType(info), null);
 
         info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "application/octet-stream");
         info.addAttributeValue(OMADownloadHandler.OMA_TYPE,
                 OMADownloadHandler.OMA_DRM_MESSAGE_MIME);
         info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "text/html");
-        Assert.assertEquals(OMADownloadHandler.getOpennableType(pm, info), null);
+        Assert.assertEquals(OMADownloadHandler.getOpennableType(info), null);
 
         info.addAttributeValue(OMADownloadHandler.OMA_OBJECT_URI, "http://www.test.com/test.html");
-        Assert.assertEquals(OMADownloadHandler.getOpennableType(pm, info), "text/html");
+        Assert.assertEquals(OMADownloadHandler.getOpennableType(info), "text/html");
 
         // Test that only the first opennable type is returned.
         info.addAttributeValue(OMADownloadHandler.OMA_TYPE, "image/png");
-        Assert.assertEquals(OMADownloadHandler.getOpennableType(pm, info), "text/html");
+        Assert.assertEquals(OMADownloadHandler.getOpennableType(info), "text/html");
     }
 
     /**
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
index 911d326d..1b81e3a 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/externalnav/ExternalNavigationHandlerTest.java
@@ -155,7 +155,7 @@
     public void testStartActivityToTrustedPackageWithoutUserGesture() {
         mDelegate.add(new IntentActivity(YOUTUBE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateNewUrlLoading(PageTransition.CLIENT_REDIRECT, false, false, 0, 0);
 
         checkUrl(YOUTUBE_URL)
@@ -278,7 +278,7 @@
     public void testRedirectFromFormSubmit_NoUserGesture_OnIntentRedirectChain() {
         mDelegate.add(new IntentActivity(YOUTUBE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = new TabRedirectHandler(mContext) {
+        TabRedirectHandler redirectHandler = new TabRedirectHandler() {
             @Override
             public boolean isOnEffectiveIntentRedirectChain() {
                 return true;
@@ -530,7 +530,7 @@
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
         mDelegate.add(new IntentActivity(YOUTUBE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
         Intent ytIntent = Intent.parseUri(YOUTUBE_URL, Intent.URI_INTENT_SCHEME);
         Intent fooIntent = Intent.parseUri("http://foo.com/", Intent.URI_INTENT_SCHEME);
         int transTypeLinkFromIntent = PageTransition.LINK
@@ -576,7 +576,7 @@
     testInitialIntentHeadingToChrome() throws URISyntaxException {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
         Intent fooIntent = Intent.parseUri("http://foo.com/", Intent.URI_INTENT_SCHEME);
         fooIntent.setPackage(mContext.getPackageName());
         int transTypeLinkFromIntent = PageTransition.LINK
@@ -610,7 +610,7 @@
     testIntentForCustomTab() throws URISyntaxException {
         mDelegate.add(new IntentActivity(YOUTUBE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
         int transTypeLinkFromIntent = PageTransition.LINK | PageTransition.FROM_API;
 
         // In Custom Tabs, if the first url is not a redirect, stay in chrome.
@@ -686,7 +686,7 @@
     @SmallTest
     public void
     testInstantAppsIntent_customTabRedirect() throws Exception {
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
         int transTypeLinkFromIntent = PageTransition.LINK | PageTransition.FROM_API;
 
         // In Custom Tabs, if the first url is a redirect, don't allow it to intent out, unless
@@ -712,7 +712,7 @@
     public void testInstantAppsIntent_incomingIntentRedirect() throws Exception {
         int transTypeLinkFromIntent = PageTransition.LINK
                 | PageTransition.FROM_API;
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
         Intent fooIntent = Intent.parseUri("http://instantappenabled.com",
                 Intent.URI_INTENT_SCHEME);
         redirectHandler.updateIntent(fooIntent);
@@ -921,7 +921,7 @@
     @Test
     @SmallTest
     public void testFallbackUrl_RedirectToIntentToMarket() {
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.TYPED, false, false, 0, 0);
         checkUrl("http://goo.gl/abcdefg")
@@ -1004,7 +1004,7 @@
     public void testFallback_UseFallbackUrlForRedirectionFromTypedInUrl() {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.TYPED, false, false, 0, 0);
         checkUrl("http://goo.gl/abcdefg")
@@ -1030,7 +1030,7 @@
         // We cannot resolve any intent, so fall-back URL will be used.
         mDelegate.setCanResolveActivityForExternalSchemes(false);
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, true, 0, 0);
         checkUrl(INTENT_URL_WITH_CHAIN_FALLBACK_URL)
@@ -1064,7 +1064,7 @@
     public void testIgnoreEffectiveRedirectFromUserTyping() {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.TYPED, false, false, 0, 0);
         checkUrl(YOUTUBE_MOBILE_URL)
@@ -1090,7 +1090,7 @@
     public void testNavigationFromLinkWithoutUserGesture() {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.LINK, false, false, 1, 0);
         checkUrl(YOUTUBE_MOBILE_URL)
@@ -1263,7 +1263,7 @@
     public void testNavigationFromReload() {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(PageTransition.RELOAD, false, false, 1, 0);
         checkUrl(YOUTUBE_MOBILE_URL)
@@ -1287,7 +1287,7 @@
     public void testNavigationWithForwardBack() {
         mDelegate.add(new IntentActivity(YOUTUBE_MOBILE_URL, YOUTUBE_PACKAGE_NAME));
 
-        TabRedirectHandler redirectHandler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler redirectHandler = TabRedirectHandler.create();
 
         redirectHandler.updateNewUrlLoading(
                 PageTransition.FORM_SUBMIT | PageTransition.FORWARD_BACK, false, false, 1, 0);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java
index 346121f..d6d3ef5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/feed/FeedNewTabPageTest.java
@@ -6,7 +6,6 @@
 
 import static android.support.test.espresso.Espresso.onView;
 import static android.support.test.espresso.action.ViewActions.click;
-import static android.support.test.espresso.action.ViewActions.swipeLeft;
 import static android.support.test.espresso.assertion.ViewAssertions.doesNotExist;
 import static android.support.test.espresso.assertion.ViewAssertions.matches;
 import static android.support.test.espresso.matcher.ViewMatchers.isDisplayed;
@@ -20,6 +19,11 @@
 import static org.chromium.chrome.test.util.ViewUtils.waitForView;
 
 import android.support.test.InstrumentationRegistry;
+import android.support.test.espresso.ViewAction;
+import android.support.test.espresso.action.GeneralLocation;
+import android.support.test.espresso.action.GeneralSwipeAction;
+import android.support.test.espresso.action.Press;
+import android.support.test.espresso.action.Swipe;
 import android.support.test.espresso.contrib.RecyclerViewActions;
 import android.support.test.filters.MediumTest;
 import android.support.v7.widget.RecyclerView;
@@ -73,6 +77,12 @@
     private static final int ARTICLE_SECTION_HEADER_POSITION = 1;
     private static final int SIGNIN_PROMO_POSITION = 2;
 
+    // Espresso ViewAction that performs a swipe from center to left across the vertical center
+    // of the view. Used instead of ViewAction.swipeLeft which swipes from right edge to
+    // avoid conflict with gesture navigation UI which consumes the edge swipe.
+    private static final ViewAction SWIPE_LEFT = new GeneralSwipeAction(
+            Swipe.FAST, GeneralLocation.CENTER, GeneralLocation.CENTER_LEFT, Press.FINGER);
+
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
 
@@ -181,7 +191,7 @@
         // Swipe away the sign-in promo.
         onView(instanceOf(RecyclerView.class))
                 .perform(RecyclerViewActions.actionOnItemAtPosition(
-                        SIGNIN_PROMO_POSITION, swipeLeft()));
+                        SIGNIN_PROMO_POSITION, SWIPE_LEFT));
 
         ViewGroup view = (ViewGroup) mNtp.getCoordinatorForTesting().getStream().getView();
         waitForView(view, withId(R.id.signin_promo_view_container), VIEW_NULL);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java
index be25a13..1ac51a9 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarLayoutTest.java
@@ -4,6 +4,11 @@
 
 package org.chromium.chrome.browser.omnibox;
 
+import static android.support.test.espresso.Espresso.onView;
+import static android.support.test.espresso.matcher.ViewMatchers.withId;
+import static android.view.View.GONE;
+import static android.view.View.VISIBLE;
+
 import android.support.test.filters.SmallTest;
 import android.view.View;
 import android.widget.ImageButton;
@@ -23,6 +28,7 @@
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.toolbar.LocationBarModel;
+import org.chromium.chrome.browser.util.UrlConstants;
 import org.chromium.chrome.test.ChromeActivityTestRule;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.util.browser.Features.EnableFeatures;
@@ -112,8 +118,13 @@
     @Before
     public void setUp() throws InterruptedException {
         mActivityTestRule.startMainActivityOnBlankPage();
+        setupTabForTests(false);
+    }
+
+    private void setupTabForTests(boolean isIncognito) throws InterruptedException {
+        if (isIncognito) mActivityTestRule.loadUrlInNewTab(UrlConstants.NTP_URL, isIncognito);
         mTestLocationBarModel = new TestLocationBarModel();
-        mTestLocationBarModel.setTab(mActivityTestRule.getActivity().getActivityTab(), false);
+        mTestLocationBarModel.setTab(mActivityTestRule.getActivity().getActivityTab(), isIncognito);
 
         TestThreadUtils.runOnUiThreadBlocking(
                 () -> getLocationBar().setToolbarDataProvider(mTestLocationBarModel));
@@ -170,8 +181,8 @@
             throws ExecutionException, InterruptedException {
         setUrlBarTextAndFocus("testing");
 
-        Assert.assertEquals(getDeleteButton().getVisibility(), View.VISIBLE);
-        Assert.assertNotEquals(getMicButton().getVisibility(), View.VISIBLE);
+        Assert.assertEquals(getDeleteButton().getVisibility(), VISIBLE);
+        Assert.assertNotEquals(getMicButton().getVisibility(), VISIBLE);
     }
 
     @Test
@@ -181,8 +192,8 @@
             throws ExecutionException, InterruptedException {
         setUrlBarTextAndFocus("");
 
-        Assert.assertNotEquals(getDeleteButton().getVisibility(), View.VISIBLE);
-        Assert.assertEquals(getMicButton().getVisibility(), View.VISIBLE);
+        Assert.assertNotEquals(getDeleteButton().getVisibility(), VISIBLE);
+        Assert.assertEquals(getMicButton().getVisibility(), VISIBLE);
     }
 
     @Test
@@ -227,4 +238,18 @@
             Assert.assertEquals(VERBOSE_URL.length(), urlBar.getSelectionEnd());
         });
     }
+
+    @Test
+    @SmallTest
+    @EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
+    @Feature({"OmniboxSearchEngineLogo"})
+    public void testOmniboxSearchEngineLogo_goneWhenIncognito() throws Exception {
+        final LocationBarLayout locationBar = getLocationBar();
+        final View iconView = locationBar.getSecurityIconView();
+        onView(withId(R.id.location_bar_status))
+                .check((view, e) -> Assert.assertEquals(iconView.getVisibility(), VISIBLE));
+        setupTabForTests(true);
+        onView(withId(R.id.location_bar_status))
+                .check((view, e) -> Assert.assertEquals(iconView.getVisibility(), GONE));
+    }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java
index 51dfe14..72cdc61 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/omnibox/LocationBarVoiceRecognitionHandlerTest.java
@@ -131,7 +131,7 @@
         }
 
         @Override
-        protected boolean isRecognitionIntentPresent(Context context, boolean useCachedValue) {
+        protected boolean isRecognitionIntentPresent(boolean useCachedValue) {
             return true;
         }
 
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java
index c532a939..8a7e3ab5 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tab/TabRedirectHandlerTest.java
@@ -11,7 +11,6 @@
 import android.os.SystemClock;
 import android.provider.Browser;
 import android.support.test.filters.SmallTest;
-import android.test.mock.MockContext;
 import android.test.mock.MockPackageManager;
 
 import org.junit.Assert;
@@ -20,6 +19,8 @@
 import org.junit.runner.RunWith;
 
 import org.chromium.base.CommandLine;
+import org.chromium.base.ContextUtils;
+import org.chromium.base.test.util.AdvancedMockContext;
 import org.chromium.base.test.util.Feature;
 import org.chromium.base.test.util.RetryOnFailure;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
@@ -40,7 +41,6 @@
     private static Intent sYtIntent;
     private static Intent sMoblieYtIntent;
     private static Intent sFooIntent;
-    private MockContext mContext;
 
     static {
         try {
@@ -55,14 +55,14 @@
     @Before
     public void setUp() throws Exception {
         CommandLine.init(new String[0]);
-        mContext = new TestContext();
+        ContextUtils.initApplicationContextForTests(new TestContext());
     }
 
     @Test
     @SmallTest
     @Feature({"IntentHandling"})
     public void testRealIntentRedirect() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -82,7 +82,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testEffectiveIntentRedirect_linkNavigation() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -102,7 +102,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testEffectiveIntentRedirect_formSubmit() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -122,7 +122,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testNoIntent() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(null);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -142,7 +142,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testClear() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -167,7 +167,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testNonLinkFromIntent() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -187,7 +187,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testUserInteraction() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -216,7 +216,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testIntentFromChrome() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         Intent fooIntent = new Intent(sFooIntent);
         fooIntent.putExtra(Browser.EXTRA_APPLICATION_ID, TEST_PACKAGE_NAME);
         handler.updateIntent(fooIntent);
@@ -248,7 +248,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testNavigationFromUserTyping() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
         Assert.assertFalse(handler.isNavigationFromUserTyping());
@@ -274,7 +274,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testIntentHavingChromePackageName() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         Intent fooIntent = new Intent(sFooIntent);
         fooIntent.setPackage(TEST_PACKAGE_NAME);
         handler.updateIntent(fooIntent);
@@ -309,7 +309,7 @@
         /////////////////////////////////////////////////////
         // 1. 3XX redirection should not override URL loading.
         /////////////////////////////////////////////////////
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.shouldNotOverrideUrlLoading());
 
@@ -323,7 +323,7 @@
         /////////////////////////////////////////////////////
         // 2. Effective redirection should not override URL loading.
         /////////////////////////////////////////////////////
-        handler = TabRedirectHandler.create(mContext);
+        handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.shouldNotOverrideUrlLoading());
 
@@ -350,7 +350,7 @@
     @Feature({"IntentHandling"})
     @RetryOnFailure
     public void testNavigationFromLinkWithoutUserGesture() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
         Assert.assertFalse(handler.shouldStayInChrome(false));
@@ -383,7 +383,7 @@
     @Feature({"IntentHandling"})
     @RetryOnFailure
     public void testNavigationFromReload() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
         Assert.assertFalse(handler.shouldStayInChrome(false));
@@ -416,7 +416,7 @@
     @Feature({"IntentHandling"})
     @RetryOnFailure
     public void testNavigationWithForwardBack() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sYtIntent);
         Assert.assertFalse(handler.isOnNavigation());
         Assert.assertFalse(handler.shouldStayInChrome(false));
@@ -451,7 +451,7 @@
         // User interaction time could be uninitialized when a new document activity is opened after
         // clicking a link. In that case, the value is 0.
         final long uninitializedUserInteractionTime = 0;
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
 
         Assert.assertFalse(handler.isOnNavigation());
         handler.updateNewUrlLoading(PageTransition.LINK, false, true,
@@ -469,7 +469,7 @@
     @SmallTest
     @Feature({"IntentHandling"})
     public void testClientRedirectWithoutUserGesture() {
-        TabRedirectHandler handler = TabRedirectHandler.create(mContext);
+        TabRedirectHandler handler = TabRedirectHandler.create();
         handler.updateIntent(sFooIntent);
         Assert.assertFalse(handler.isOnNavigation());
 
@@ -500,7 +500,7 @@
         }
     }
 
-    private static class TestContext extends MockContext {
+    private static class TestContext extends AdvancedMockContext {
         @Override
         public PackageManager getPackageManager() {
             return new TestPackageManager();
@@ -510,6 +510,5 @@
         public String getPackageName() {
             return TEST_PACKAGE_NAME;
         }
-
     }
 }
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
index 1b2d259..99436c2 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/tasks/ReturnToChromeTest.java
@@ -4,11 +4,11 @@
 
 package org.chromium.chrome.browser.tasks;
 
+import static org.junit.Assert.assertEquals;
+
 import static org.chromium.chrome.browser.tasks.ReturnToChromeExperimentsUtil.TAB_SWITCHER_ON_RETURN_MS;
 
 import android.app.Activity;
-import android.content.Context;
-import android.os.SystemClock;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
 
@@ -22,13 +22,20 @@
 import org.chromium.base.ApplicationStatus;
 import org.chromium.base.test.util.CallbackHelper;
 import org.chromium.base.test.util.CommandLineFlags;
-import org.chromium.base.test.util.DisabledTest;
 import org.chromium.base.test.util.Feature;
+import org.chromium.base.test.util.Restriction;
 import org.chromium.chrome.browser.ChromeFeatureList;
 import org.chromium.chrome.browser.ChromeSwitches;
 import org.chromium.chrome.browser.ChromeTabbedActivity;
+import org.chromium.chrome.browser.util.FeatureUtilities;
 import org.chromium.chrome.test.ChromeJUnit4ClassRunner;
 import org.chromium.chrome.test.ChromeTabbedActivityTestRule;
+import org.chromium.chrome.test.util.MenuUtils;
+import org.chromium.content_public.browser.test.util.Criteria;
+import org.chromium.content_public.browser.test.util.CriteriaHelper;
+import org.chromium.content_public.browser.test.util.TestThreadUtils;
+import org.chromium.net.test.EmbeddedTestServer;
+import org.chromium.ui.test.util.UiRestriction;
 
 import java.util.concurrent.TimeoutException;
 
@@ -37,6 +44,7 @@
  * has passed.
  */
 @RunWith(ChromeJUnit4ClassRunner.class)
+@Restriction(UiRestriction.RESTRICTION_TYPE_PHONE)
 public class ReturnToChromeTest {
     @Rule
     public ChromeTabbedActivityTestRule mActivityTestRule = new ChromeTabbedActivityTestRule();
@@ -45,10 +53,12 @@
 
     @Before
     public void setUp() throws Exception {
-        Context context = InstrumentationRegistry.getInstrumentation().getTargetContext();
+        FeatureUtilities.setGridTabSwitcherEnabledForTesting(true);
 
         mActivityTestRule.startMainActivityFromLauncher();
         mActivity = mActivityTestRule.getActivity();
+
+        setupTabs();
     }
 
     /**
@@ -64,7 +74,7 @@
             "force-fieldtrial-params=FakeStudyName.Enabled:" + TAB_SWITCHER_ON_RETURN_MS
                     + "/100000"})
     public void
-    testObserverModeNotTriggeredWithoutDelay() throws Exception {
+    testTabSwitcherModeNotTriggeredWithinThreshold() throws Exception {
         finishActivityCompletely();
 
         mActivityTestRule.startMainActivityFromLauncher();
@@ -73,25 +83,51 @@
         Assert.assertFalse(mActivity.getLayoutManager().overviewVisible());
     }
 
+    /**
+     * Test that overview mode is triggered if the delay is shorter than the interval between
+     * stop and start.
+     */
     @Test
     @SmallTest
     @Feature({"ReturnToChrome"})
-    @DisabledTest(message = "crbug.com/955436")
     @CommandLineFlags.Add({ChromeSwitches.DISABLE_FIRST_RUN_EXPERIENCE,
             "enable-features=" + ChromeFeatureList.TAB_SWITCHER_ON_RETURN + "<FakeStudyName",
             "force-fieldtrials=FakeStudyName/Enabled",
-            "force-fieldtrial-params=FakeStudyName.Enabled:" + TAB_SWITCHER_ON_RETURN_MS + "/1"})
+            "force-fieldtrial-params=FakeStudyName.Enabled:" + TAB_SWITCHER_ON_RETURN_MS + "/0"})
     public void
-    testObserverModeTriggeredWithDelay() throws Exception {
+    testTabSwitcherModeTriggeredBeyondThreshold() throws Exception {
         finishActivityCompletely();
 
-        // Sleep past the timeout.
-        SystemClock.sleep(30);
-
         mActivityTestRule.startMainActivityFromLauncher();
         mActivity = mActivityTestRule.getActivity();
 
         Assert.assertTrue(mActivity.getLayoutManager().overviewVisible());
+
+        CriteriaHelper.pollUiThread(Criteria.equals(true,
+                mActivityTestRule.getActivity()
+                        .getTabModelSelector()
+                        .getTabModelFilterProvider()
+                        .getCurrentTabModelFilter()::isTabModelRestored));
+
+        assertEquals(2, mActivityTestRule.getActivity().getTabModelSelector().getTotalTabCount());
+    }
+
+    private void setupTabs() throws InterruptedException {
+        TestThreadUtils.runOnUiThreadBlocking(
+                () -> mActivityTestRule.getActivity().getTabModelSelector().closeAllTabs());
+        EmbeddedTestServer testServer =
+                EmbeddedTestServer.createAndStartServer(InstrumentationRegistry.getContext());
+        final String url = testServer.getURL("/chrome/test/data/android/navigate/simple.html");
+
+        // Add 2 tabs.
+        MenuUtils.invokeCustomMenuActionSync(InstrumentationRegistry.getInstrumentation(),
+                mActivity, org.chromium.chrome.R.id.new_tab_menu_id);
+        mActivityTestRule.loadUrl(url);
+        MenuUtils.invokeCustomMenuActionSync(InstrumentationRegistry.getInstrumentation(),
+                mActivity, org.chromium.chrome.R.id.new_tab_menu_id);
+        mActivityTestRule.loadUrl(url);
+
+        assertEquals(2, mActivity.getTabModelSelector().getTotalTabCount());
     }
 
     private void finishActivityCompletely() throws InterruptedException, TimeoutException {
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java
index 4cd425b..b27107d 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/util/FeatureUtilitiesTest.java
@@ -11,7 +11,6 @@
 import android.speech.RecognizerIntent;
 import android.support.test.InstrumentationRegistry;
 import android.support.test.filters.SmallTest;
-import android.test.mock.MockContext;
 import android.test.mock.MockPackageManager;
 
 import org.junit.After;
@@ -31,7 +30,6 @@
 
 import java.util.ArrayList;
 import java.util.List;
-import java.util.concurrent.Callable;
 
 /**
  * Unit Test for FeatureUtilities.
@@ -91,12 +89,11 @@
         }
     }
 
-    private static class IntentTestMockContext extends MockContext {
-
+    private static class IntentTestMockContext extends AdvancedMockContext {
         private final String mAction;
 
         public IntentTestMockContext(String recognizesAction) {
-            super();
+            super(InstrumentationRegistry.getTargetContext());
             mAction = recognizesAction;
         }
 
@@ -123,15 +120,10 @@
         }
     }
 
-    private static boolean isRecognitionIntentPresent(
-            final IntentTestMockContext context, final boolean useCachedResult) {
+    private static boolean isRecognitionIntentPresent(final boolean useCachedResult) {
         // Context can only be queried on a UI Thread.
-        return TestThreadUtils.runOnUiThreadBlockingNoException(new Callable<Boolean>() {
-            @Override
-            public Boolean call() {
-                return FeatureUtilities.isRecognitionIntentPresent(context, useCachedResult);
-            }
-        });
+        return TestThreadUtils.runOnUiThreadBlockingNoException(
+                () -> FeatureUtilities.isRecognitionIntentPresent(useCachedResult));
     }
 
     private void setUpAccountManager(String accountType) {
@@ -148,10 +140,9 @@
     @SmallTest
     @Feature({"FeatureUtilities", "Speech"})
     public void testSpeechFeatureAvailable() {
+        ContextUtils.initApplicationContextForTests(mContextWithSpeech);
         final boolean doNotUseCachedResult = false;
-        final boolean recognizesSpeech = isRecognitionIntentPresent(
-                mContextWithSpeech,
-                doNotUseCachedResult);
+        final boolean recognizesSpeech = isRecognitionIntentPresent(doNotUseCachedResult);
 
         Assert.assertTrue(recognizesSpeech);
     }
@@ -160,10 +151,9 @@
     @SmallTest
     @Feature({"FeatureUtilities", "Speech"})
     public void testSpeechFeatureUnavailable() {
+        ContextUtils.initApplicationContextForTests(mContextWithoutSpeech);
         final boolean doNotUseCachedResult = false;
-        final boolean recognizesSpeech = isRecognitionIntentPresent(
-                mContextWithoutSpeech,
-                doNotUseCachedResult);
+        final boolean recognizesSpeech = isRecognitionIntentPresent(doNotUseCachedResult);
 
         Assert.assertFalse(recognizesSpeech);
     }
@@ -172,17 +162,17 @@
     @SmallTest
     @Feature({"FeatureUtilities", "Speech"})
     public void testCachedSpeechFeatureAvailability() {
+        ContextUtils.initApplicationContextForTests(mContextWithSpeech);
         // Initial call will cache the fact that speech is recognized.
         final boolean doNotUseCachedResult = false;
         isRecognitionIntentPresent(
-                mContextWithSpeech,
                 doNotUseCachedResult);
 
+        ContextUtils.initApplicationContextForTests(mContextWithoutSpeech);
         // Pass a context that does not recognize speech, but use cached result
         // which does recognize speech.
         final boolean useCachedResult = true;
         final boolean recognizesSpeech = isRecognitionIntentPresent(
-                mContextWithoutSpeech,
                 useCachedResult);
 
         // Check that we still recognize speech as we're using cached result.
@@ -190,7 +180,6 @@
 
         // Check if we can turn cached result off again.
         final boolean RecognizesSpeechUncached = isRecognitionIntentPresent(
-                mContextWithoutSpeech,
                 doNotUseCachedResult);
 
         Assert.assertFalse(RecognizesSpeechUncached);
diff --git a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java
index e3195d93..5fec396 100644
--- a/chrome/android/javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java
+++ b/chrome/android/javatests/src/org/chromium/chrome/browser/widget/bottomsheet/BottomSheetControllerTest.java
@@ -74,9 +74,8 @@
 
             ScrimView scrim = new ScrimView(mActivityTestRule.getActivity(), null, coordinator);
 
-            mSheetController = new BottomSheetController(activity,
-                    activity.getLifecycleDispatcher(), activity.getActivityTabProvider(), scrim,
-                    mBottomSheet,
+            mSheetController = new BottomSheetController(activity.getLifecycleDispatcher(),
+                    activity.getActivityTabProvider(), scrim, mBottomSheet,
                     activity.getCompositorViewHolder().getLayoutManager().getOverlayPanelManager());
 
             mLowPriorityContent = new TestBottomSheetContent(
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
index 3e697c5..378fdbe 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/omnibox/status/StatusMediatorUnitTest.java
@@ -4,6 +4,9 @@
 
 package org.chromium.chrome.browser.omnibox.status;
 
+import static org.mockito.ArgumentMatchers.any;
+import static org.mockito.ArgumentMatchers.anyBoolean;
+
 import android.content.res.Resources;
 import android.graphics.Bitmap;
 
@@ -22,6 +25,7 @@
 import org.chromium.base.test.BaseRobolectricTestRunner;
 import org.chromium.chrome.R;
 import org.chromium.chrome.browser.ChromeFeatureList;
+import org.chromium.chrome.browser.toolbar.ToolbarCommonPropertiesModel;
 import org.chromium.chrome.test.util.browser.Features;
 import org.chromium.ui.modelutil.PropertyModel;
 
@@ -36,6 +40,8 @@
     @Mock
     Resources mResources;
     @Mock
+    ToolbarCommonPropertiesModel mToolbarCommonPropertiesModel;
+    @Mock
     StatusMediator.StatusMediatorDelegate mDelegate;
     @Mock
     Bitmap mBitmap;
@@ -51,13 +57,14 @@
 
         mModel = new PropertyModel(StatusProperties.ALL_KEYS);
         mMediator = new StatusMediator(mModel, mResources);
+        mMediator.setToolbarCommonPropertiesModel(mToolbarCommonPropertiesModel);
         mMediator.setDelegateForTesting(mDelegate);
     }
 
     @Test
     @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
     public void searchEngineLogo_showGoogleLogo() {
-        setupSearchEngineLogoForTesting(false, true, false);
+        setupSearchEngineLogoForTesting(true, false, false, false);
 
         mMediator.setUrlHasFocus(true);
         mMediator.setShowIconsWhenUrlFocused(true);
@@ -69,7 +76,7 @@
     @Test
     @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
     public void searchEngineLogo_showGoogleLogo_searchLoupeEverywhere() {
-        setupSearchEngineLogoForTesting(false, true, true);
+        setupSearchEngineLogoForTesting(true, true, true, false);
 
         mMediator.setUrlHasFocus(true);
         mMediator.setShowIconsWhenUrlFocused(true);
@@ -80,7 +87,7 @@
     @Test
     @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
     public void searchEngineLogo_showNonGoogleLogo() {
-        setupSearchEngineLogoForTesting(false, false, false);
+        setupSearchEngineLogoForTesting(true, false, false, false);
 
         mMediator.setUrlHasFocus(true);
         mMediator.setShowIconsWhenUrlFocused(true);
@@ -89,8 +96,7 @@
         Mockito.clearInvocations(mDelegate);
         mMediator.updateSearchEngineStatusIcon(true, false, TEST_SEARCH_URL);
         Assert.assertEquals(R.drawable.ic_search, mModel.get(StatusProperties.STATUS_ICON_RES));
-        Mockito.verify(mDelegate, Mockito.times(1))
-                .getSearchEngineLogoFavicon(Mockito.any(), Mockito.any());
+        Mockito.verify(mDelegate, Mockito.times(1)).getSearchEngineLogoFavicon(any(), any());
         mCallbackCaptor.getValue().onResult(mBitmap);
         Assert.assertEquals(mBitmap, mModel.get(StatusProperties.STATUS_ICON));
     }
@@ -98,7 +104,7 @@
     @Test
     @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
     public void searchEngineLogo_showNonGoogleLogo_searchLoupeEverywhere() {
-        setupSearchEngineLogoForTesting(false, false, true);
+        setupSearchEngineLogoForTesting(true, false, true, false);
 
         mMediator.setUrlHasFocus(true);
         mMediator.setShowIconsWhenUrlFocused(true);
@@ -107,14 +113,13 @@
         Mockito.clearInvocations(mDelegate);
         mMediator.updateSearchEngineStatusIcon(true, false, TEST_SEARCH_URL);
         Assert.assertEquals(R.drawable.ic_search, mModel.get(StatusProperties.STATUS_ICON_RES));
-        Mockito.verify(mDelegate, Mockito.times(0))
-                .getSearchEngineLogoFavicon(Mockito.any(), Mockito.any());
+        Mockito.verify(mDelegate, Mockito.times(0)).getSearchEngineLogoFavicon(any(), any());
     }
 
     @Test
     @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
     public void searchEngineLogo_onTextChanged_globeReplacesIconWhenTextIsSite() {
-        setupSearchEngineLogoForTesting(true, false, false);
+        setupSearchEngineLogoForTesting(true, true, false, true);
 
         mMediator.setUrlHasFocus(true);
         mMediator.setShowIconsWhenUrlFocused(true);
@@ -122,13 +127,31 @@
         Assert.assertEquals(R.drawable.ic_globe_24dp, mModel.get(StatusProperties.STATUS_ICON_RES));
     }
 
+    @Test
+    @Features.EnableFeatures(ChromeFeatureList.OMNIBOX_SEARCH_ENGINE_LOGO)
+    public void searchEngineLogo_incognitoNoIcon() {
+        setupSearchEngineLogoForTesting(true, true, false, false);
+        Mockito.doReturn(true).when(mToolbarCommonPropertiesModel).isIncognito();
+
+        mMediator.setUrlHasFocus(false);
+        mMediator.setShowIconsWhenUrlFocused(true);
+        mMediator.setSecurityIconResource(0);
+        mMediator.updateSearchEngineStatusIcon(true, false, TEST_SEARCH_URL);
+
+        Assert.assertEquals(0, mModel.get(StatusProperties.STATUS_ICON_RES));
+    }
+
     private void setupSearchEngineLogoForTesting(
-            boolean validUrl, boolean showGoogle, boolean loupeEverywhere) {
-        Mockito.doReturn(validUrl).when(mDelegate).isUrlValid(Mockito.any());
-        Mockito.doReturn(true).when(mDelegate).shouldShowSearchEngineLogo();
-        Mockito.doReturn(loupeEverywhere).when(mDelegate).shouldShowSearchLoupeEverywhere();
+            boolean shouldShowLogo, boolean showGoogle, boolean loupeEverywhere, boolean validUrl) {
+        Mockito.doReturn(shouldShowLogo).when(mDelegate).shouldShowSearchEngineLogo(false);
+        Mockito.doReturn(false).when(mDelegate).shouldShowSearchEngineLogo(true);
+        Mockito.doReturn(loupeEverywhere)
+                .when(mDelegate)
+                .shouldShowSearchLoupeEverywhere(anyBoolean());
         Mockito.doNothing().when(mDelegate).getSearchEngineLogoFavicon(
-                Mockito.any(), mCallbackCaptor.capture());
-        mMediator.updateSearchEngineStatusIcon(true, showGoogle, TEST_SEARCH_URL);
+                any(), mCallbackCaptor.capture());
+        Mockito.doReturn(validUrl).when(mDelegate).isUrlValid(any());
+
+        mMediator.updateSearchEngineStatusIcon(shouldShowLogo, showGoogle, TEST_SEARCH_URL);
     }
 }
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java
new file mode 100644
index 0000000..53a08c73
--- /dev/null
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceMetricsTest.java
@@ -0,0 +1,159 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.chrome.browser.search_engines;
+
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertFalse;
+import static org.junit.Assert.assertTrue;
+import static org.mockito.Mockito.doReturn;
+
+import android.support.test.filters.SmallTest;
+
+import org.junit.Before;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+import org.mockito.Mock;
+import org.mockito.MockitoAnnotations;
+import org.robolectric.annotation.Config;
+
+import org.chromium.base.metrics.test.ShadowRecordHistogram;
+import org.chromium.base.test.BaseRobolectricTestRunner;
+import org.chromium.chrome.test.support.DisableHistogramsRule;
+import org.chromium.components.search_engines.TemplateUrl;
+import org.chromium.components.search_engines.TemplateUrlService;
+
+/**
+ * Unit tests for {@link SearchEngineChoiceMetrics}.
+ */
+@RunWith(BaseRobolectricTestRunner.class)
+@Config(manifest = Config.NONE, shadows = {ShadowRecordHistogram.class})
+public final class SearchEngineChoiceMetricsTest {
+    private static final String TEST_INITIAL_ENGINE = "google.com";
+    private static final String TEST_ALTERNATIVE_ENGINE = "duckduckgo.com";
+
+    private static final String HISTOGRAM_AFTER_CHOICE =
+            "Android.SearchEngineChoice.ChosenSearchEngine";
+
+    @Rule
+    public DisableHistogramsRule mDisableHistogramsRule = new DisableHistogramsRule();
+    @Mock
+    private TemplateUrlService mTemplateUrlService;
+    @Mock
+    private TemplateUrl mInitialSearchEngine;
+    @Mock
+    private TemplateUrl mAlternativeSearchEngine;
+
+    @Before
+    public void setUp() {
+        MockitoAnnotations.initMocks(this);
+        ShadowRecordHistogram.reset();
+
+        // Sets up appropriate responses from Template URL service.
+        TemplateUrlServiceFactory.setInstanceForTesting(mTemplateUrlService);
+        doReturn(TEST_ALTERNATIVE_ENGINE).when(mAlternativeSearchEngine).getKeyword();
+        doReturn(SearchEngineType.SEARCH_ENGINE_DUCKDUCKGO)
+                .when(mTemplateUrlService)
+                .getSearchEngineTypeFromTemplateUrl(TEST_ALTERNATIVE_ENGINE);
+        doReturn(TEST_INITIAL_ENGINE).when(mInitialSearchEngine).getKeyword();
+        doReturn(SearchEngineType.SEARCH_ENGINE_GOOGLE)
+                .when(mTemplateUrlService)
+                .getSearchEngineTypeFromTemplateUrl(TEST_INITIAL_ENGINE);
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+    }
+
+    @Test
+    @SmallTest
+    public void recordSearchEngineTypeBeforeChoice() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        SearchEngineChoiceMetrics.recordSearchEngineTypeBeforeChoice();
+        assertEquals(1,
+                ShadowRecordHistogram.getHistogramValueCountForTesting(
+                        "Android.SearchEngineChoice.SearchEngineBeforeChoicePrompt",
+                        SearchEngineType.SEARCH_ENGINE_GOOGLE));
+
+        doReturn(mAlternativeSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        SearchEngineChoiceMetrics.recordSearchEngineTypeBeforeChoice();
+        assertEquals(1,
+                ShadowRecordHistogram.getHistogramValueCountForTesting(
+                        "Android.SearchEngineChoice.SearchEngineBeforeChoicePrompt",
+                        SearchEngineType.SEARCH_ENGINE_DUCKDUCKGO));
+    }
+
+    @Test
+    @SmallTest
+    public void recordSearchEngineTypeAfterChoice() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        SearchEngineChoiceMetrics.setPreviousSearchEngineType(
+                SearchEngineChoiceMetrics.getDefaultSearchEngineType());
+        doReturn(mAlternativeSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+
+        SearchEngineChoiceMetrics.recordSearchEngineTypeAfterChoice();
+        assertEquals(1,
+                ShadowRecordHistogram.getHistogramValueCountForTesting(
+                        HISTOGRAM_AFTER_CHOICE, SearchEngineType.SEARCH_ENGINE_DUCKDUCKGO));
+    }
+
+    @Test
+    @SmallTest
+    public void recordSearchEngineTypeAfterChoice_noChoice() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        SearchEngineChoiceMetrics.setPreviousSearchEngineType(
+                SearchEngineChoiceMetrics.getDefaultSearchEngineType());
+
+        SearchEngineChoiceMetrics.recordSearchEngineTypeAfterChoice();
+        assertEquals(0,
+                ShadowRecordHistogram.getHistogramValueCountForTesting(
+                        HISTOGRAM_AFTER_CHOICE, SearchEngineType.SEARCH_ENGINE_GOOGLE));
+    }
+
+    @Test
+    @SmallTest
+    public void getDefaultSearchEngineType() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        assertEquals(SearchEngineType.SEARCH_ENGINE_GOOGLE,
+                SearchEngineChoiceMetrics.getDefaultSearchEngineType());
+
+        doReturn(mAlternativeSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        assertEquals(SearchEngineType.SEARCH_ENGINE_DUCKDUCKGO,
+                SearchEngineChoiceMetrics.getDefaultSearchEngineType());
+    }
+
+    @Test
+    @SmallTest
+    public void isSearchEnginePossiblyDifferent() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        SearchEngineChoiceMetrics.setPreviousSearchEngineType(
+                SearchEngineChoiceMetrics.getDefaultSearchEngineType());
+        assertTrue(SearchEngineChoiceMetrics.isSearchEnginePossiblyDifferent());
+    }
+
+    @Test
+    @SmallTest
+    public void isSearchEnginePossiblyDifferent_notDifferent() {
+        doReturn(mInitialSearchEngine)
+                .when(mTemplateUrlService)
+                .getDefaultSearchEngineTemplateUrl();
+        assertFalse(SearchEngineChoiceMetrics.isSearchEnginePossiblyDifferent());
+    }
+}
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java
index cd03ea4..b6ec5fe 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/search_engines/SearchEngineChoiceNotificationTest.java
@@ -123,7 +123,7 @@
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SNACKBAR_SHOWN));
+                        SearchEngineChoiceMetrics.Events.SNACKBAR_SHOWN));
     }
 
     @Test
@@ -138,7 +138,7 @@
         assertEquals("We are expecting exactly one snackbar shown event.", 1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SNACKBAR_SHOWN));
+                        SearchEngineChoiceMetrics.Events.SNACKBAR_SHOWN));
 
         assertTrue("Version of the app should be persisted upon prompting.",
                 ContextUtils.getAppSharedPreferences().contains(
@@ -162,8 +162,7 @@
         SearchEngineChoiceNotification.handleSearchEngineChoice(mContext, mSnackbarManager);
         assertFalse("Second call removes the preference for search engine choice before.",
                 ContextUtils.getAppSharedPreferences().contains(
-                        SearchEngineChoiceNotification
-                                .PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
+                        SearchEngineChoiceMetrics.PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
 
         SearchEngineChoiceNotification.handleSearchEngineChoice(mContext, mSnackbarManager);
 
@@ -172,7 +171,7 @@
         assertEquals(1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SNACKBAR_SHOWN));
+                        SearchEngineChoiceMetrics.Events.SNACKBAR_SHOWN));
     }
 
     @Test
@@ -186,7 +185,7 @@
         assertEquals(1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.PROMPT_FOLLOWED));
+                        SearchEngineChoiceMetrics.Events.PROMPT_FOLLOWED));
         verify(mContext, times(1)).startActivity(any(Intent.class), isNull());
     }
 
@@ -204,13 +203,12 @@
         assertFalse(
                 "First handleSearchEngineChoice call after prompt removes SE choice before pref.",
                 ContextUtils.getAppSharedPreferences().contains(
-                        SearchEngineChoiceNotification
-                                .PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
+                        SearchEngineChoiceMetrics.PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
 
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SEARCH_ENGINE_CHANGED));
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED));
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.ChosenSearchEngine",
@@ -230,8 +228,7 @@
         assertFalse(
                 "First handleSearchEngineChoice call after prompt removes SE choice before pref.",
                 ContextUtils.getAppSharedPreferences().contains(
-                        SearchEngineChoiceNotification
-                                .PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
+                        SearchEngineChoiceMetrics.PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
 
         doReturn(mAlternativeSearchEngine)
                 .when(mTemplateUrlService)
@@ -241,7 +238,7 @@
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SEARCH_ENGINE_CHANGED));
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED));
         assertEquals(0,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.ChosenSearchEngine",
@@ -265,7 +262,7 @@
         assertEquals("Event is recorded when search engine was changed.", 1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SEARCH_ENGINE_CHANGED));
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED));
         assertEquals("Newly chosen search engine type should be recoreded.", 1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.ChosenSearchEngine",
@@ -274,15 +271,14 @@
         assertFalse(
                 "First handleSearchEngineChoice call after prompt removes SE choice before pref.",
                 ContextUtils.getAppSharedPreferences().contains(
-                        SearchEngineChoiceNotification
-                                .PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
+                        SearchEngineChoiceMetrics.PREF_SEARCH_ENGINE_CHOICE_DEFAULT_TYPE_BEFORE));
 
         SearchEngineChoiceNotification.handleSearchEngineChoice(mContext, mSnackbarManager);
 
         assertEquals("Event should only be recorded once, therefore count should be still 1.", 1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
                         "Android.SearchEngineChoice.Events",
-                        SearchEngineChoiceNotification.Events.SEARCH_ENGINE_CHANGED));
+                        SearchEngineChoiceMetrics.Events.SEARCH_ENGINE_CHANGED));
         assertEquals("New Search Engine shoudl only be reported once, therefore count should be 1",
                 1,
                 ShadowRecordHistogram.getHistogramValueCountForTesting(
diff --git a/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java b/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java
index bf4be1a..0a44ca6cc 100644
--- a/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java
+++ b/chrome/android/junit/src/org/chromium/chrome/browser/toolbar/ToolbarSecurityIconTest.java
@@ -4,8 +4,12 @@
 package org.chromium.chrome.browser.toolbar;
 
 import static org.junit.Assert.assertEquals;
+import static org.mockito.Mockito.doReturn;
 import static org.mockito.Mockito.when;
 
+import android.content.Context;
+import android.content.res.Resources;
+
 import org.junit.Before;
 import org.junit.Test;
 import org.junit.runner.RunWith;
@@ -34,10 +38,18 @@
 
     @Mock
     private Tab mTab;
+    @Mock
+    private Context mContext;
+    @Mock
+    private Resources mResources;
+
+    private LocationBarModel mLocationBarModel;
 
     @Before
     public void setUp() {
         MockitoAnnotations.initMocks(this);
+        doReturn(mResources).when(mContext).getResources();
+        mLocationBarModel = new LocationBarModel(mContext);
     }
 
     @Test
@@ -74,64 +86,64 @@
         for (int securityLevel : SECURITY_LEVELS) {
             assertEquals("Wrong phone resource for security level " + securityLevel,
                     R.drawable.ic_offline_pin_24dp,
-                    LocationBarModel.getSecurityIconResource(
+                    mLocationBarModel.getSecurityIconResource(
                             securityLevel, IS_SMALL_DEVICE, IS_OFFLINE_PAGE, !IS_PREVIEW));
             assertEquals("Wrong tablet resource for security level " + securityLevel,
                     R.drawable.ic_offline_pin_24dp,
-                    LocationBarModel.getSecurityIconResource(
+                    mLocationBarModel.getSecurityIconResource(
                             securityLevel, !IS_SMALL_DEVICE, IS_OFFLINE_PAGE, !IS_PREVIEW));
             assertEquals("Wrong phone resource for security level " + securityLevel,
                     R.drawable.preview_pin_round,
-                    LocationBarModel.getSecurityIconResource(
+                    mLocationBarModel.getSecurityIconResource(
                             securityLevel, IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, IS_PREVIEW));
             assertEquals("Wrong tablet resource for security level " + securityLevel,
                     R.drawable.preview_pin_round,
-                    LocationBarModel.getSecurityIconResource(
+                    mLocationBarModel.getSecurityIconResource(
                             securityLevel, !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, IS_PREVIEW));
         }
 
         assertEquals(0,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.NONE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.NONE,
                         IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_info,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.NONE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.NONE,
                         !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
 
         assertEquals(R.drawable.omnibox_info,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.HTTP_SHOW_WARNING,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.HTTP_SHOW_WARNING,
                         IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_info,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.HTTP_SHOW_WARNING,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.HTTP_SHOW_WARNING,
                         !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
 
         assertEquals(R.drawable.omnibox_https_invalid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.DANGEROUS,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.DANGEROUS,
                         IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_https_invalid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.DANGEROUS,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.DANGEROUS,
                         !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
 
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(
+                mLocationBarModel.getSecurityIconResource(
                         ConnectionSecurityLevel.SECURE_WITH_POLICY_INSTALLED_CERT, IS_SMALL_DEVICE,
                         !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(
+                mLocationBarModel.getSecurityIconResource(
                         ConnectionSecurityLevel.SECURE_WITH_POLICY_INSTALLED_CERT, !IS_SMALL_DEVICE,
                         !IS_OFFLINE_PAGE, !IS_PREVIEW));
 
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.SECURE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.SECURE,
                         IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.SECURE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.SECURE,
                         !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
 
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.EV_SECURE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.EV_SECURE,
                         IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
         assertEquals(R.drawable.omnibox_https_valid,
-                LocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.EV_SECURE,
+                mLocationBarModel.getSecurityIconResource(ConnectionSecurityLevel.EV_SECURE,
                         !IS_SMALL_DEVICE, !IS_OFFLINE_PAGE, !IS_PREVIEW));
     }
 }
diff --git a/chrome/app/generated_resources.grd b/chrome/app/generated_resources.grd
index fdb18ff9..3dda0f3 100644
--- a/chrome/app/generated_resources.grd
+++ b/chrome/app/generated_resources.grd
@@ -5002,6 +5002,11 @@
       <message name="IDS_OMNIBOX_REMOVE_SUGGESTION_BUBBLE_DESCRIPTION" desc="The description of a bubble to delete an omnibox suggestion.">
         This page will also be removed from your history and <ph name="SEARCH_ENGINE">$1<ex>Google</ex></ph> activity.
       </message>
+      <if expr="is_android">
+      <message name="IDS_OMNIBOX_CONFIRM_DELETE_FROM_CLIPBOARD" desc="A message within a modal dialog that confirms the user wants to delete a clipboard suggestion from the list dropdown in the omnibox." formatter_data="android_java">
+        Remove suggestion from clipboard?
+      </message>
+      </if>
 
       <!-- NTP -->
       <message name="IDS_GOOGLE_SEARCH_BOX_EMPTY_HINT" desc="The text displayed in the fakebox (on the New Tab page) when it is empty, and Google is the default search engine.">
diff --git a/chrome/app/generated_resources_grd/IDS_OMNIBOX_CONFIRM_DELETE_FROM_CLIPBOARD.png.sha1 b/chrome/app/generated_resources_grd/IDS_OMNIBOX_CONFIRM_DELETE_FROM_CLIPBOARD.png.sha1
new file mode 100644
index 0000000..44a4dd6
--- /dev/null
+++ b/chrome/app/generated_resources_grd/IDS_OMNIBOX_CONFIRM_DELETE_FROM_CLIPBOARD.png.sha1
@@ -0,0 +1 @@
+3d5d03d5fd8475c8f2be42197defd593fa5364e1
\ No newline at end of file
diff --git a/chrome/app/resources/chromium_strings_am.xtb b/chrome/app/resources/chromium_strings_am.xtb
index a0215bf..c8eb627 100644
--- a/chrome/app/resources/chromium_strings_am.xtb
+++ b/chrome/app/resources/chromium_strings_am.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">አብሮገነቡ የፒዲኤፍ መመልከቻው ከጎደለ Chromium የህትመት ቅድመ-እይታውን ማሳየት አይችልም።</translation>
 <translation id="5427571867875391349">Chromium እንደ ነባሪ አሳሽዎ አድርገው ያዋቅሩት</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ቅድመ-ይሁንታ</translation>
-<translation id="5466153949126434691">Chromium በራስ-ሰር ስለሚዘምን ሁልጊዜ ትኩሱ ስሪት ነው የሚኖርዎ። ይህ ውርድ ሲጠናቀቅ Chromium ዳግም ይጀምርና እርስዎም ስራዎን ይቀጥላሉ።</translation>
 <translation id="5479196819031988440">Chromium OS ይህን ገጽ መክፈት አይችልም።</translation>
 <translation id="5480860683791598150">Chromium አካባቢዎን ለዚህ ጣቢያ ለማጋራት የአካባቢዎ መዳረሻ ያስፈልገዋል</translation>
 <translation id="549669000822060376">Chromium የቅርብ ጊዜዎቹ የስርዓቱ ዝማኔዎችን እስኪጭን ድረስ እባክዎ ይጠብቁ።</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Chromium ወደ የቅርብ ጊዜው ስሪት ሊዘመን አልቻለም፣ ስለዚህ አዲስ ባህሪያት እና የደህንነት ጥገናዎች እያመለጡዎት ናቸው። Chromiumን ማዘመን አለብዎት።</translation>
 <translation id="7901117350626490574">አዲስ ዝማኔ ለChromium ይገኛል እና ልክ ዳግም ሲያስጀምሩት ይተገበራል።</translation>
 <translation id="7937630085815544518">እንደ <ph name="USER_EMAIL_ADDRESS" /> ሆነው ወደ Chromium ገብተዋል። እባክዎ እንደገና ለመግባት ተመሳሳዩን መለያ ይጠቀሙ።</translation>
-<translation id="7962572577636132072">Chromium በራስ-ሰር ይዘመናል፣ ስለዚህ ሁልጊዜ አዲሱ ስሪት ይኖርዎታል።</translation>
 <translation id="7975919845073681630">ይሄ ሁለተኛ የChromium ጭነት ነው፣ እና ነባሪ አሳሽዎ ማድረግ አይቻልም።</translation>
 <translation id="7979877361127045932">በChromium ምናሌ ውስጥ ደብቅ</translation>
 <translation id="8013436988911883588">አንዴ Chromium መዳረሻ ከኖረው በኋላ ድር ጣቢያዎች እርስዎን መዳረሻ መጠየቅ ይችላሉ።</translation>
diff --git a/chrome/app/resources/chromium_strings_ar.xtb b/chrome/app/resources/chromium_strings_ar.xtb
index f419cbb..d6cc711 100644
--- a/chrome/app/resources/chromium_strings_ar.xtb
+++ b/chrome/app/resources/chromium_strings_ar.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">‏يتعذر على Chromium عرض معاينة الطباعة عندما يكون عارض PDF المضمّن مفقودًا.</translation>
 <translation id="5427571867875391349">‏تعيين Chromium المتصفح التلقائي</translation>
 <translation id="5438241569118040789">‏<ph name="PAGE_TITLE" /> - الإصدار التجريبي من Chromium</translation>
-<translation id="5466153949126434691">‏يجري تحديث Chromium تلقائيًا بحيث يكون لديك أحدث إصدار. عند اكتمال هذا التحميل، ستتم إعادة تشغيل Chromium وستبدأ العمل.</translation>
 <translation id="5479196819031988440">‏يتعذر على نظام التشغيل Chromium فتح هذه الصفحة.</translation>
 <translation id="5480860683791598150">‏يحتاج Chromium للوصول إلى موقعك الجغرافي لمشاركته مع هذا الموقع.</translation>
 <translation id="549669000822060376">‏يُرجى الانتظار أثناء تثبيت Chromium لآخر تحديثات النظام.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">‏تعذّر تحديث Chromium إلى آخر إصدار، لذلك قد تفوتك الميزات الجديدة وعمليات إصلاح الأمان.</translation>
 <translation id="7901117350626490574">‏يتوفر تحديث جديد لبرنامج Chromium وسيتم تطبيقه عند إعادة التشغيل.</translation>
 <translation id="7937630085815544518">‏تم تسجيل دخولك إلى Chromium باعتبارك <ph name="USER_EMAIL_ADDRESS" />. يُرجى استخدام الحساب نفسه لتسجيل الدخول مرة أخرى.</translation>
-<translation id="7962572577636132072">‏يجري تحديث Chromium تلقائيًا بحيث يكون لديك أحدث إصدار.</translation>
 <translation id="7975919845073681630">‏هذا تثبيت ثانوي من Chromium، ولا يمكن جعله متصفحك التلقائي.</translation>
 <translation id="7979877361127045932">‏الإخفاء في قائمة Chromium</translation>
 <translation id="8013436988911883588">‏بعد حصول Chromium على إمكانية الوصول، ستتمكن المواقع الإلكترونية من مطالبتك بإمكانية الوصول.</translation>
diff --git a/chrome/app/resources/chromium_strings_bg.xtb b/chrome/app/resources/chromium_strings_bg.xtb
index 1efc603..5926d08 100644
--- a/chrome/app/resources/chromium_strings_bg.xtb
+++ b/chrome/app/resources/chromium_strings_bg.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">Chromium не може да покаже визуализацията за печат, когато вграденият визуализатор на PDF файлове липсва.</translation>
 <translation id="5427571867875391349">Задаване на Chromium като браузър по подразбиране</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium бета</translation>
-<translation id="5466153949126434691">Chromium се актуализира автоматично, така че винаги да имате най-новата версия. Когато това изтегляне завърши, Chromium ще се рестартира и ще можете да започнете работа.</translation>
 <translation id="5479196819031988440">Chromium OS не може да отвори тази страница.</translation>
 <translation id="5480860683791598150">Chromium се нуждае от достъп до данните за местоположението ви, за да ги сподели с този сайт</translation>
 <translation id="549669000822060376">Моля, изчакайте, докато Chromium инсталира най-новите системни актуализации.</translation>
@@ -206,7 +205,6 @@
 <translation id="7867198900892795913">Chromium не можа да се актуализира до най-новата версия. Това означава, че пропускате нови функции и корекции за сигурност.</translation>
 <translation id="7901117350626490574">Налице е актуализация на Chromium, която ще бъде приложена веднага щом рестартирате.</translation>
 <translation id="7937630085815544518">Бяхте влезли в Chromium като <ph name="USER_EMAIL_ADDRESS" />. Моля, използвайте същия профил, за да влезете отново.</translation>
-<translation id="7962572577636132072">Chromium се актуализира автоматично, така че винаги да имате най-новата версия.</translation>
 <translation id="7975919845073681630">Тази инсталация на Chromium е алтернативна и не може да се зададе като браузър по подразбиране.</translation>
 <translation id="7979877361127045932">Скриване в менюто на Chromium</translation>
 <translation id="8013436988911883588">След като Chromium получи достъп, уебсайтовете ще могат да искат достъп от вас.</translation>
diff --git a/chrome/app/resources/chromium_strings_bn.xtb b/chrome/app/resources/chromium_strings_bn.xtb
index 33a1a7f..b43a075 100644
--- a/chrome/app/resources/chromium_strings_bn.xtb
+++ b/chrome/app/resources/chromium_strings_bn.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">বিল্ট-ইন পিডিএফ ভিউয়ার অনুপস্থিত থাকলে Chromium প্রিন্ট প্রিভিউ দেখাতে পারে না৷</translation>
 <translation id="5427571867875391349">Chromium-কে আপনার ডিফল্ট ব্রাউজার হিসাবে সেট করুন</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium বিটা</translation>
-<translation id="5466153949126434691">Chromium অটোমেটিক আপডেট হয় তাই আপনার কাছে সর্বদা নবীনতম ভার্সনটি থাকে৷ এই ডাউনলোডটি সম্পূর্ণ হলে, Chromium পুনরায় চালু হবে এবং আপনি আবার আগের মতো Chrome ব্যবহার করতে পারবেন৷</translation>
 <translation id="5479196819031988440">Chromium OS এই পৃষ্ঠাটি খুলতে পারবে না।</translation>
 <translation id="5480860683791598150">এই সাইটটির সাথে আপনার লোকেশন শেয়ার করার জন্য Chromium কে আপনার লোকেশনের তথ্যে অ্যাক্সেস দিতে হবে</translation>
 <translation id="549669000822060376">Chromium যখন সিস্টেম আপডেটগুলিকে ইনস্টল করে তখন দয়া করে অপেক্ষা করুন৷</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Chromium লেটেস্ট ভার্সনে আপডেট করা যাচ্ছে না, তাই আপনি নতুন বৈশিষ্ট্য এবং সুরক্ষা সমাধানগুলি পাচ্ছেন না।</translation>
 <translation id="7901117350626490574">Chromium-এর একটি নতুন আপডেট উপলভ্য আছে এবং আপনি আবার চালু করলে সেটি প্রয়োগ করা হবে।</translation>
 <translation id="7937630085815544518">আপনি <ph name="USER_EMAIL_ADDRESS" /> হিসাবে Chromium-এ প্রবেশ করেছেন৷ আবার সাইন-ইন করতে একই অ্যাকাউন্ট ব্যবহার করুন৷</translation>
-<translation id="7962572577636132072">Chromium অটোমেটিক আপডেট হয় তাই আপনি সবসময় নবীনতম ভার্সনটি পান৷</translation>
 <translation id="7975919845073681630">এটা Chromium এর সেকেন্ডারি ইনস্টলেশন এবং একে আপনার ডিফল্ট ব্রাউজার করা যাবে না।</translation>
 <translation id="7979877361127045932">Chromium মেনুর মধ্যে লুকান</translation>
 <translation id="8013436988911883588">Chromium অ্যাক্সেস পেলেই, ওয়েবসাইটগুলি আপনাকে অ্যাক্সেসের অনুরোধ করতে পারবে।</translation>
diff --git a/chrome/app/resources/chromium_strings_ca.xtb b/chrome/app/resources/chromium_strings_ca.xtb
index 90503d2..3268d93 100644
--- a/chrome/app/resources/chromium_strings_ca.xtb
+++ b/chrome/app/resources/chromium_strings_ca.xtb
@@ -94,7 +94,7 @@
 <translation id="4407044323746248786">Vols sortir de Chromium igualment?</translation>
 <translation id="4415566066719264597">Permet que Chromium s'executi en segon pla</translation>
 <translation id="4423735387467980091">Personalitza i controla Chromium</translation>
-<translation id="4567424176335768812">Heu iniciat la sessió com a <ph name="USER_EMAIL_ADDRESS" />. Ja podeu accedir a les vostres adreces d'interès, al vostre historial i a altres paràmetres en tots els dispositius en què hàgiu iniciat la sessió.</translation>
+<translation id="4567424176335768812">Heu iniciat la sessió com a <ph name="USER_EMAIL_ADDRESS" />. Ja podeu accedir a les vostres adreces d'interès, al vostre historial i a altres paràmetres en tots els dispositius en què teniu la sessió iniciada.</translation>
 <translation id="459535195905078186">Aplicacions de Chromium</translation>
 <translation id="4621240073146040695">Gairebé heu acabat. Reinicieu Chromium per completar l'actualització.</translation>
 <translation id="4677944499843243528">Sembla que un altre procés de Chromium (<ph name="PROCESS_ID" />) està fent servir el perfil en un altre ordinador (<ph name="HOST_NAME" />). Chromium ha bloquejat el perfil perquè no es malmeti. Si esteu segur que no hi ha cap altre procés que utilitzi el perfil, podeu desbloquejar-lo i tornar a iniciar Chromium.</translation>
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">Chromium no pot mostrar la previsualització d'impressió perquè falta el lector de PDF integrat.</translation>
 <translation id="5427571867875391349">Defineix Chromium com a navegador predeterminat</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium s'actualitza automàticament perquè en tingueu sempre la versió més recent. Quan es completi aquesta baixada, Chromium es reiniciarà i ja el podreu utilitzar.</translation>
 <translation id="5479196819031988440">Chromium OS no pot obrir aquesta pàgina.</translation>
 <translation id="5480860683791598150">Chromium necessita accedir a la teva ubicació per compartir-la amb aquest lloc web</translation>
 <translation id="549669000822060376">Espereu mentre Chromium instal·la les darreres actualitzacions del sistema.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Chromium no s'ha pogut actualitzar a la darrera versió, així que no pots gaudir de les noves funcions ni de les correccions de seguretat.</translation>
 <translation id="7901117350626490574">Hi ha una actualització de Chromium disponible i s'aplicarà tan aviat com el tornis a iniciar.</translation>
 <translation id="7937630085815544518">Teníeu la sessió iniciada a Chromium com a <ph name="USER_EMAIL_ADDRESS" />. Utilitzeu el mateix compte per tornar a iniciar-hi la sessió.</translation>
-<translation id="7962572577636132072">Chromium s'actualitza automàticament perquè en tingueu sempre la versió més recent.</translation>
 <translation id="7975919845073681630">Aquesta és una instal·lació secundària de Chromium i no pot definir-se com a navegador predeterminat.</translation>
 <translation id="7979877361127045932">Amaga al menú de Chromium</translation>
 <translation id="8013436988911883588">Un cop Chromium tingui accés, els llocs web et podran demanar accés.</translation>
diff --git a/chrome/app/resources/chromium_strings_cs.xtb b/chrome/app/resources/chromium_strings_cs.xtb
index 974d109..d90eafd3 100644
--- a/chrome/app/resources/chromium_strings_cs.xtb
+++ b/chrome/app/resources/chromium_strings_cs.xtb
@@ -118,7 +118,6 @@
 <translation id="5416696090975899932">Pokud chybí integrovaný program k zobrazení souborů PDF, nemůže prohlížeč Chromium zobrazit náhled tisku.</translation>
 <translation id="5427571867875391349">Nastavit Chromium jako výchozí prohlížeč</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Prohlížeč Chromium se automaticky aktualizuje, abyste vždy měli k dispozici nejnovější verzi. Až toto stahování skončí, Chromium se restartuje a budete moci pokračovat.</translation>
 <translation id="5479196819031988440">Chromium OS tuto stránku nedokáže otevřít</translation>
 <translation id="5480860683791598150">Prohlížeč Chromium potřebuje přístup k vaší poloze, aby ji mohl sdílet s tímto webem</translation>
 <translation id="549669000822060376">Počkejte prosím, než Chromium nainstaluje nejnovější aktualizace systému.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium nebylo možné aktualizovat na nejnovější verzi. Nemáte proto k dispozici nové funkce a opravy zabezpečení.</translation>
 <translation id="7901117350626490574">Je k dispozici nová aktualizace prohlížeče Chromium, která bude použita po restartování.</translation>
 <translation id="7937630085815544518">K prohlížeči Chromium jste byli přihlášeni s účtem <ph name="USER_EMAIL_ADDRESS" />. Přihlaste se prosím znovu pomocí stejného účtu.</translation>
-<translation id="7962572577636132072">Prohlížeč Chromium se automaticky aktualizuje, abyste vždy měli k dispozici nejnovější verzi.</translation>
 <translation id="7975919845073681630">Toto je druhá instalace prohlížeče Chromium. Tuto instalaci nelze nastavit jako výchozí prohlížeč.</translation>
 <translation id="7979877361127045932">Skrýt v nabídce Chromium</translation>
 <translation id="8013436988911883588">Až bude mít Chromium přístup, budou vás weby moci požádat o přístup.</translation>
diff --git a/chrome/app/resources/chromium_strings_da.xtb b/chrome/app/resources/chromium_strings_da.xtb
index eeb6cd8..2e0617a 100644
--- a/chrome/app/resources/chromium_strings_da.xtb
+++ b/chrome/app/resources/chromium_strings_da.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium kan ikke vise udskrifter, når den indbyggede PDF-fremviser mangler.</translation>
 <translation id="5427571867875391349">Angiv Chromium som din standardbrowser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium beta</translation>
-<translation id="5466153949126434691">Chromium opdateres automatisk, så du altid har den nyeste version. Når downloaden er fuldført, genstartes Chromium, og så er du godt på vej.</translation>
 <translation id="5479196819031988440">Chromium OS kan ikke åbne denne side.</translation>
 <translation id="5480860683791598150">Chromium skal have adgang til din placering for at dele din placering med dette website</translation>
 <translation id="549669000822060376">Vent, mens Chromium installerer de nyeste systemopdateringer.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium kunne ikke opdatere til den nyeste version, så du går glip af nye funktioner og sikkerhedsrettelser.</translation>
 <translation id="7901117350626490574">Der er en tilgængelig Chromium-opdatering, som anvendes, så snart du genstarter.</translation>
 <translation id="7937630085815544518">Du loggede ind på Chromium som <ph name="USER_EMAIL_ADDRESS" />. Brug den samme konto til at logge ind igen.</translation>
-<translation id="7962572577636132072">Chromium opdateres automatisk, så du altid har den nyeste version.</translation>
 <translation id="7975919845073681630">Dette er en sekundær installation af Chromium, og den kan ikke gøres til din standardbrowser.</translation>
 <translation id="7979877361127045932">Skjul i Chromium-menuen</translation>
 <translation id="8013436988911883588">Når Chromium har adgang, kan websites bede dig om adgang.</translation>
diff --git a/chrome/app/resources/chromium_strings_de.xtb b/chrome/app/resources/chromium_strings_de.xtb
index c61defd1..743a88d 100644
--- a/chrome/app/resources/chromium_strings_de.xtb
+++ b/chrome/app/resources/chromium_strings_de.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium kann ohne den integrierten PDF-Viewer keine Druckvorschau anzeigen.</translation>
 <translation id="5427571867875391349">Chromium als Standardbrowser festlegen</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen. Nach Abschluss des Downloads wird Chromium neu gestartet und Sie können fortfahren.</translation>
 <translation id="5479196819031988440">Chromium OS kann diese Seite nicht öffnen.</translation>
 <translation id="5480860683791598150">Chromium benötigt Zugriff auf Ihren Standort, um ihn mit dieser Website zu teilen</translation>
 <translation id="549669000822060376">Bitte warten Sie, bis die aktuellen Systemupdates von Chromium installiert wurden.</translation>
@@ -212,7 +211,6 @@
 <translation id="7867198900892795913">Chromium konnte nicht auf die neueste Version aktualisiert werden. In Ihrer Version fehlen daher einige neue Funktionen und Sicherheitspatches.</translation>
 <translation id="7901117350626490574">Ein neues Update für Chromium ist verfügbar und wird installiert, sobald Sie den Browser neu starten.</translation>
 <translation id="7937630085815544518">Sie waren in Chromium als <ph name="USER_EMAIL_ADDRESS" /> angemeldet. Melden Sie sich bitte wieder mit demselben Konto an.</translation>
-<translation id="7962572577636132072">Chromium wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen.</translation>
 <translation id="7975919845073681630">Dies ist eine Zweitinstallation, daher kann Chromium nicht als Standardbrowser festgelegt werden.</translation>
 <translation id="7979877361127045932">Im Chromium-Menü ausblenden</translation>
 <translation id="8013436988911883588">Sobald Chromium Zugriff hat, können Websites Sie um Zugriff bitten.</translation>
diff --git a/chrome/app/resources/chromium_strings_el.xtb b/chrome/app/resources/chromium_strings_el.xtb
index 320f793..40a444f9 100644
--- a/chrome/app/resources/chromium_strings_el.xtb
+++ b/chrome/app/resources/chromium_strings_el.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Δεν είναι δυνατή η εμφάνιση της προεπισκόπησης εκτύπωσης στο Chromium, όταν το ενσωματωμένο πρόγραμμα προβολής αρχείων PDF λείπει.</translation>
 <translation id="5427571867875391349">Ορισμός του Chromium ως προεπιλεγμένου προγράμματος περιήγησης</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Το Chromium ενημερώνεται αυτόματα, προκειμένου να έχετε πάντα στη διάθεσή σας τη νεότερη έκδοση. Όταν ολοκληρωθεί αυτή η λήψη, θα γίνει επανεκκίνηση του Chromium και θα είστε έτοιμοι.</translation>
 <translation id="5479196819031988440">Το Chromium OS δεν μπορεί να ανοίξει αυτήν τη σελίδα.</translation>
 <translation id="5480860683791598150">Το Chromium χρειάζεται πρόσβαση στην τοποθεσία σας, για να την κοινοποιήσει σε αυτόν τον ιστότοπο</translation>
 <translation id="549669000822060376">Περιμένετε μέχρι να γίνει εγκατάσταση των πιο πρόσφατων ενημερώσεων συστήματος από το Chromium.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Δεν ήταν δυνατή η ενημέρωση του Chromium στην τελευταία έκδοση και έτσι δεν θα έχετε πρόσβαση στις νέες λειτουργίες και στις επιδιορθώσεις ασφαλείας.</translation>
 <translation id="7901117350626490574">Υπάρχει νέα διαθέσιμη ενημέρωση για το Chromium και θα εφαρμοστεί μόλις κάνετε επανεκκίνηση.</translation>
 <translation id="7937630085815544518">Συνδεθήκατε στο Chromium ως <ph name="USER_EMAIL_ADDRESS" />. Χρησιμοποιήστε τον ίδιο λογαριασμό για να συνδεθείτε ξανά.</translation>
-<translation id="7962572577636132072">Το Chromium ενημερώνεται αυτόματα, προκειμένου να έχετε πάντα στη διάθεσή σας τη νεότερη έκδοση.</translation>
 <translation id="7975919845073681630">Αυτή είναι μια δευτερεύουσα εγκατάσταση του Chromium και δεν μπορεί να γίνει το προεπιλεγμένο πρόγραμμα περιήγησης.</translation>
 <translation id="7979877361127045932">Απόκρυψη από το μενού του Chromium</translation>
 <translation id="8013436988911883588">Όταν το Chromium αποκτήσει πρόσβαση, οι ιστότοποι θα μπορούν να σας ζητήσουν πρόσβαση.</translation>
diff --git a/chrome/app/resources/chromium_strings_en-GB.xtb b/chrome/app/resources/chromium_strings_en-GB.xtb
index 42538bd..80ec559c 100644
--- a/chrome/app/resources/chromium_strings_en-GB.xtb
+++ b/chrome/app/resources/chromium_strings_en-GB.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Chromium cannot show the print preview when the built-in PDF viewer is missing.</translation>
 <translation id="5427571867875391349">Set Chromium as your default browser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium updates automatically so you always have the freshest version. When this download completes, Chromium will restart and you'll be on your way.</translation>
 <translation id="5479196819031988440">Chromium OS can't open this page.</translation>
 <translation id="5480860683791598150">Chromium needs access to your location to share your location with this site</translation>
 <translation id="549669000822060376">Please wait while Chromium installs the latest system updates.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Chromium couldn't update to the latest version, so you're missing out on new features and security fixes.</translation>
 <translation id="7901117350626490574">A new update for Chromium is available and will be applied as soon as you relaunch.</translation>
 <translation id="7937630085815544518">You were signed in to Chromium as <ph name="USER_EMAIL_ADDRESS" />. Please use the same account to sign in again.</translation>
-<translation id="7962572577636132072">Chromium updates automatically so you always have the freshest version.</translation>
 <translation id="7975919845073681630">This is a secondary installation of Chromium, and cannot be made your default browser.</translation>
 <translation id="7979877361127045932">Hide in Chromium menu</translation>
 <translation id="8013436988911883588">Once Chromium has access, websites will be able to ask you for access.</translation>
diff --git a/chrome/app/resources/chromium_strings_es-419.xtb b/chrome/app/resources/chromium_strings_es-419.xtb
index df9fec5..f74b4bb 100644
--- a/chrome/app/resources/chromium_strings_es-419.xtb
+++ b/chrome/app/resources/chromium_strings_es-419.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">Chromium no puede mostrar la vista previa de impresión si falta el visor de PDF incorporado.</translation>
 <translation id="5427571867875391349">Establecer Chromium como navegador predeterminado</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" />: Versión Beta de Chromium</translation>
-<translation id="5466153949126434691">Chromium se actualiza automáticamente para que siempre tengas la versión más reciente. Cuando se complete esta descarga, Chromium se reiniciará y podrás usarlo.</translation>
 <translation id="5479196819031988440">El Sistema operativo Chromium no puede abrir esta página.</translation>
 <translation id="5480860683791598150">Chromium necesita acceder a tu ubicación para compartirla con este sitio</translation>
 <translation id="549669000822060376">Espera mientras Chromium instala las últimas actualizaciones del sistema.</translation>
@@ -207,7 +206,6 @@
 <translation id="7867198900892795913">Chromium no se pudo actualizar a la última versión, por lo que te estás perdiendo las nuevas funciones y correcciones de seguridad.</translation>
 <translation id="7901117350626490574">Hay una nueva actualización disponible para Chromium que se aplicará cuando lo reinicies.</translation>
 <translation id="7937630085815544518">Accediste a Chromium con <ph name="USER_EMAIL_ADDRESS" />. Usa la misma cuenta para volver a acceder.</translation>
-<translation id="7962572577636132072">Chromium se actualiza automáticamente para que siempre tengas la versión más reciente.</translation>
 <translation id="7975919845073681630">Como esta es una instalación secundaria de Chromium, no puede establecerse como tu navegador predeterminado.</translation>
 <translation id="7979877361127045932">Ocultar en el menú de Chromium</translation>
 <translation id="8013436988911883588">Una vez que Chromium tenga acceso, los sitios web podrán solicitarte acceso.</translation>
diff --git a/chrome/app/resources/chromium_strings_es.xtb b/chrome/app/resources/chromium_strings_es.xtb
index a935c60..ff68fae 100644
--- a/chrome/app/resources/chromium_strings_es.xtb
+++ b/chrome/app/resources/chromium_strings_es.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Chromium no puede mostrar la vista previa de impresión si falta el visor de PDF integrado.</translation>
 <translation id="5427571867875391349">Establecer Chromium como navegador predeterminado</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> ‑ Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium se actualiza automáticamente para que siempre dispongas de la última versión. Cuando se complete la descarga, Chromium se reiniciará automáticamente.</translation>
 <translation id="5479196819031988440">Chromium OS no puede abrir esta página.</translation>
 <translation id="5480860683791598150">Chromium necesita acceder a tu ubicación para compartirla con este sitio web</translation>
 <translation id="549669000822060376">Espera mientras Chromium instala las últimas actualizaciones del sistema.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">No se ha podido actualizar Chromium a la versión más reciente, por lo que no disfrutas de las últimas funciones y correcciones de seguridad.</translation>
 <translation id="7901117350626490574">Hay una nueva actualización de Chromium disponible que se aplicará cuando reinicies el dispositivo.</translation>
 <translation id="7937630085815544518">Habías iniciado sesión en Chromium como <ph name="USER_EMAIL_ADDRESS" />. Utiliza la misma cuenta para volver a iniciar sesión.</translation>
-<translation id="7962572577636132072">Chromium se actualiza automáticamente para que siempre dispongas de la última versión.</translation>
 <translation id="7975919845073681630">Esta instalación de Chromium es secundaria, por lo que no se puede establecer como navegador predeterminado.</translation>
 <translation id="7979877361127045932">Ocultar en el menú de Chromium</translation>
 <translation id="8013436988911883588">Una vez que Chromium tenga acceso, los sitios web podrán solicitarlo también.</translation>
diff --git a/chrome/app/resources/chromium_strings_et.xtb b/chrome/app/resources/chromium_strings_et.xtb
index e8b52b83..58cce39 100644
--- a/chrome/app/resources/chromium_strings_et.xtb
+++ b/chrome/app/resources/chromium_strings_et.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium ei saa printimise eelvaadet kuvada, kui sisseehitatud PDF-vaatur puudub.</translation>
 <translation id="5427571867875391349">Määra Chromium vaikebrauseriks</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromiumi beetaversioon</translation>
-<translation id="5466153949126434691">Chromium teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni. Kui allalaadimine on lõppenud, siis Chrome taaskäivitub ja võite alustada kasutamist.</translation>
 <translation id="5479196819031988440">Chromium OS ei saa seda lehte avada.</translation>
 <translation id="5480860683791598150">Chromium vajab juurdepääsu teie asukohale, et seda selle saidiga jagada</translation>
 <translation id="549669000822060376">Oodake, kuni Chromium installib uusimad süsteemivärskendused.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromiumi ei saanud uusimale versioonile värskendada, mistõttu jääte ilma uutest funktsioonidest ja turvaparandustest.</translation>
 <translation id="7901117350626490574">Saadaval on uus Chromiumi värskendus, mis rakendatakse taaskäivitamisel.</translation>
 <translation id="7937630085815544518">Olite Chromiumisse sisse logitud kasutajana <ph name="USER_EMAIL_ADDRESS" />. Kasutage uuesti sisselogimiseks sama kontot.</translation>
-<translation id="7962572577636132072">Chromium teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni.</translation>
 <translation id="7975919845073681630">See on Chromiumi sekundaarne install ja seda ei saa määrata vaikebrauseriks.</translation>
 <translation id="7979877361127045932">Chromiumi menüüs peitmine</translation>
 <translation id="8013436988911883588">Kui annate Chromiumile juurdepääsu, saavad veebisaidid küsida teilt juurdepääsuluba.</translation>
diff --git a/chrome/app/resources/chromium_strings_fa.xtb b/chrome/app/resources/chromium_strings_fa.xtb
index 44cb5421..4142775 100644
--- a/chrome/app/resources/chromium_strings_fa.xtb
+++ b/chrome/app/resources/chromium_strings_fa.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">‏وقتی نمایشگر داخلی PDF وجود نداشته باشد، Chromium نمی‌تواند پیش‌نمایش چاپ را نشان دهد.</translation>
 <translation id="5427571867875391349">‏تنظیم Chromium به عنوان مرورگر پیش‌فرضتان</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">‏Chromium به صورت خودکار به‌روزرسانی می‌شود بنابراین همیشه جدیدترین نسخه را دارید. وقتی این بارگیری تمام شد، Chromium دوباره شروع به کار می‌کند و می‌توانید کارتان را ادامه دهید.</translation>
 <translation id="5479196819031988440">‏Chromium OS نمی‌تواند این صفحه را باز کند.</translation>
 <translation id="5480860683791598150">‏Chromium برای هم‌رسانی مکانتان با این سایت باید به مکان شما دسترسی داشته باشد</translation>
 <translation id="549669000822060376">‏وقتی Chromium جدیدترین به‌روزرسانی‌های سیستم را نصب می‌کند، لطفاً صبر کنید.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">‏Chromium به جدیدترین نسخه به‌روزرسانی نشد، بنابراین قابلیت‌های جدید و رفع اشکال‌های امنیتی را ندارید.</translation>
 <translation id="7901117350626490574">‏به‌روزرسانی جدیدی برای Chromium دردسترس است و به‌محض راه‌اندازی مجدد اعمال خواهد شد.</translation>
 <translation id="7937630085815544518">‏شما بعنوان <ph name="USER_EMAIL_ADDRESS" /> وارد سیستم Chromium شده‌اید. لطفاً برای ورود به سیستم مجدد از همان حساب استفاده کنید.</translation>
-<translation id="7962572577636132072">‏Chromium به صورت خودکار به‌روزرسانی می‌شود بنابراین همیشه جدیدترین نسخه را دارید.</translation>
 <translation id="7975919845073681630">‏این نصب ثانویه Chromium است و نمی‌تواند مرورگر پیش‌فرضتان شود.</translation>
 <translation id="7979877361127045932">‏پنهان در منوی Chromium</translation>
 <translation id="8013436988911883588">‏وقتی Chromium دسترسی داشته باشد، وب‌سایت‌ها می‌توانند مجوز دسترسی درخواست کنند.</translation>
diff --git a/chrome/app/resources/chromium_strings_fi.xtb b/chrome/app/resources/chromium_strings_fi.xtb
index c60d2eb..5bda86c 100644
--- a/chrome/app/resources/chromium_strings_fi.xtb
+++ b/chrome/app/resources/chromium_strings_fi.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium ei voi näyttää tulostusesikatselua, koska PDF-katseluohjelma puuttuu.</translation>
 <translation id="5427571867875391349">Aseta Chromium oletusselaimeksi</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium päivittyy automaattisesti, joten käytössäsi on aina uusin versio. Kun lataus on valmis, Chromium käynnistyy uudelleen ja voit aloittaa käytön.</translation>
 <translation id="5479196819031988440">Chromium-käyttöjärjestelmä ei voi avata tätä sivua.</translation>
 <translation id="5480860683791598150">Chromium tarvitsee oikeuden käyttää sijaintiasi, jotta se voidaan jakaa tämän sivuston kanssa.</translation>
 <translation id="549669000822060376">Odota hetki, Chromium asentaa uusimpia järjestelmäpäivityksiä.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromiumia ei voitu päivittää uusimpaan versioon, joten sinulta puuttuu joitakin uusia ominaisuuksia ja tietoturvakorjauksia.</translation>
 <translation id="7901117350626490574">Uusi Chromium-päivitys on saatavilla, ja se otetaan käyttöön uudelleenkäynnistyksen jälkeen.</translation>
 <translation id="7937630085815544518">Chromiumiin kirjautunut käyttäjä: <ph name="USER_EMAIL_ADDRESS" />. Kirjaudu uudelleen sisään samalla tilillä.</translation>
-<translation id="7962572577636132072">Chromium päivitetään automaattisesti, joten käytössäsi on aina uusin versio.</translation>
 <translation id="7975919845073681630">Tämä on Chromiumin toissijainen asennus, eikä sitä voi asettaa oletusselaimeksi.</translation>
 <translation id="7979877361127045932">Piilota Chromium-valikossa</translation>
 <translation id="8013436988911883588">Kun Chromiumilla on käyttöoikeus, sivustot voivat pyytää sitä sinulta.</translation>
diff --git a/chrome/app/resources/chromium_strings_fil.xtb b/chrome/app/resources/chromium_strings_fil.xtb
index fabba58..aec466f 100644
--- a/chrome/app/resources/chromium_strings_fil.xtb
+++ b/chrome/app/resources/chromium_strings_fil.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Hindi maipapakita ng Chromium ang preview ng pag-print kapag nawawala ang built-in na PDF viewer.</translation>
 <translation id="5427571867875391349">Itakda ang Chromium bilang iyong default na browser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Awtomatikong nag-a-update ang Chromium upang palagi kang may pinakabagong bersyon. Kapag nakumpleto ang pag-download na ito, magre-restart ang Chromium at makakapagpatuloy ka na.</translation>
 <translation id="5479196819031988440">Hindi mabuksan ng Chromium OS ang page na ito.</translation>
 <translation id="5480860683791598150">Kailangan ng Chromium ng access sa iyong lokasyon upang maibahagi ang lokasyon mo sa site na ito</translation>
 <translation id="549669000822060376">Mangyaring maghintay habang ini-install ng Chromium ang mga pinakabagong update sa system.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Hindi ma-update ang Chromium sa pinakabagong bersyon, kaya may napapalampas kang mga bagong feature at pag-aayos sa seguridad.</translation>
 <translation id="7901117350626490574">May available na bagong update para sa Chromium at ilalapat ito sa sandaling muli kang maglunsad.</translation>
 <translation id="7937630085815544518">Naka-sign in ka sa Chromium bilang <ph name="USER_EMAIL_ADDRESS" />. Pakigamit ang parehong account upang mag-sign in muli.</translation>
-<translation id="7962572577636132072">Awtomatikong nag-a-update ang Chromium upang palagi kang may pinakabagong bersyon.</translation>
 <translation id="7975919845073681630">Pangalawang pag-install ito ng Chromium at hindi ito maaaring gawing iyong default na browser.</translation>
 <translation id="7979877361127045932">Itago sa menu ng Chromium</translation>
 <translation id="8013436988911883588">Kapag mayroon nang access ang Chromium, makakahingi na ang mga website ng access sa iyo.</translation>
diff --git a/chrome/app/resources/chromium_strings_fr.xtb b/chrome/app/resources/chromium_strings_fr.xtb
index f6605b3..2b827f2 100644
--- a/chrome/app/resources/chromium_strings_fr.xtb
+++ b/chrome/app/resources/chromium_strings_fr.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Impossible d'afficher l'aperçu avant impression dans Chromium, car la visionneuse de PDF intégrée est absente.</translation>
 <translation id="5427571867875391349">Définir Chromium comme navigateur par défaut</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Bêta</translation>
-<translation id="5466153949126434691">Chromium est automatiquement mis à jour pour vous permettre de toujours disposer de la dernière version. Une fois le téléchargement terminé, Chromium redémarre et vous pouvez de nouveau l'utiliser.</translation>
 <translation id="5479196819031988440">Chromium OS ne peut pas ouvrir cette page</translation>
 <translation id="5480860683791598150">Chromium a besoin d'accéder à votre position pour la partager avec ce site</translation>
 <translation id="549669000822060376">Veuillez patienter pendant que Chromium installe les dernières mises à jour du système.</translation>
@@ -212,7 +211,6 @@
 <translation id="7867198900892795913">Échec de l'installation de la dernière version de Chromium. Vous ne disposez donc pas des nouvelles fonctionnalités, ni des correctifs de sécurité.</translation>
 <translation id="7901117350626490574">Une nouvelle mise à jour est disponible pour Chromium et sera installée dès que vous le relancerez.</translation>
 <translation id="7937630085815544518">Vous étiez connecté à Chromium en tant que <ph name="USER_EMAIL_ADDRESS" />. Veuillez utiliser le même compte pour vous reconnecter.</translation>
-<translation id="7962572577636132072">Chromium est automatiquement mis à jour pour vous permettre de toujours disposer de la dernière version.</translation>
 <translation id="7975919845073681630">Ceci est une installation secondaire de Chromium. Vous ne pouvez pas le définir comme navigateur par défaut.</translation>
 <translation id="7979877361127045932">Masquer dans le menu Chromium</translation>
 <translation id="8013436988911883588">Une fois l'accès à une ressource accordé à Chromium, les sites Web sont également en mesure de vous demander l'accès.</translation>
diff --git a/chrome/app/resources/chromium_strings_gu.xtb b/chrome/app/resources/chromium_strings_gu.xtb
index 2a4e0f73..17d1a6da 100644
--- a/chrome/app/resources/chromium_strings_gu.xtb
+++ b/chrome/app/resources/chromium_strings_gu.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">જ્યારે બિલ્ટ-ઇન PDF વ્યૂઅર ઉપલબ્ધ ન હોય, ત્યારે Chromium પ્રિન્ટ પ્રીવ્યૂ બતાવી શકાતું નથી.</translation>
 <translation id="5427571867875391349">Chromium ને તમારા ડિફોલ્ટ બ્રાઉઝર તરીકે સેટ કરો</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium બીટા</translation>
-<translation id="5466153949126434691">Chromium ઑટોમૅટિક રીતે અપડેટ થાય છે જેથી કરીને તમારી પાસે હંમેશાં નવું વર્ઝન રહે છે. જ્યારે આ ડાઉનલોડ પૂરું થાય છે, ત્યારે Chromium ફરીથી ચાલુ થશે અને તમે તમારા માર્ગે હશો.</translation>
 <translation id="5479196819031988440">Chromium OS, આ પેજને ખોલી શકતું નથી.</translation>
 <translation id="5480860683791598150">Chromiumને આ સાઇટ સાથે તમારું સ્થાન શેર કરવા માટે તમારા સ્થાનના ઍક્સેસની જરૂર પડે છે</translation>
 <translation id="549669000822060376">કૃપા કરીને Chromium, નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Chromium નવીનતમ વર્ઝન પર અપડેટ ન થઈ શક્યું, તેથી તમે નવી સુવિધાઓ અને સુરક્ષાના સુધારા ચૂકી રહ્યા છો.</translation>
 <translation id="7901117350626490574">Chromium માટે નવી અપડેટ ઉપલબ્ધ છે અને તે તમે જેવું જ ફરીથી લોંચ કરશો, લાગુ થઈ જશે.</translation>
 <translation id="7937630085815544518">તમે Chromium માં <ph name="USER_EMAIL_ADDRESS" /> તરીકે સાઇન ઇન કર્યું હતું. ફરીથી સાઇન ઇન કરવા માટે કૃપા કરીને એ જ એકાઉન્ટનો ઉપયોગ કરો.</translation>
-<translation id="7962572577636132072">Chromium ઑટોમૅટિક રીતે અપડેટ થાય છે, જેથી કરીને તમારી પાસે હંમેશાં સૌથી નવું વર્ઝન રહે છે.</translation>
 <translation id="7975919845073681630">આ Google Chrome નું દ્વિતીય ઇન્સ્ટૉલેશન છે અને આને તમારું ડિફૉલ્ટ બ્રાઉઝર બનાવી શકાતું નથી.</translation>
 <translation id="7979877361127045932">Chromium મેનૂમાં છુપાવો</translation>
 <translation id="8013436988911883588">એકવાર Chromiumને ઍક્સેસ મળે, તે પછી વેબસાઇટ તમારી પાસે ઍક્સેસ માગી શકશે.</translation>
diff --git a/chrome/app/resources/chromium_strings_hi.xtb b/chrome/app/resources/chromium_strings_hi.xtb
index 1129ee4..769ea3f 100644
--- a/chrome/app/resources/chromium_strings_hi.xtb
+++ b/chrome/app/resources/chromium_strings_hi.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">अगर क्रोमियम के साथ आने वाला पीडीएफ़ व्यूअर मौजूद न हो, तो क्रोमियम प्रिंट की झलक नहीं दिखा पाएगा.</translation>
 <translation id="5427571867875391349">क्रोमियम को अपने डिफ़ॉल्ट ब्राउज़र के रूप में सेट करें</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - क्रोमियम बीटा</translation>
-<translation id="5466153949126434691">क्रोमियम अपने आप अपडेट हो जाता है ताकि आपके पास हमेशा सबसे नवीनतम वर्शन रहे. जब यह डाउनलोड पूरा हो जाता है, तो क्रोमियम फिर से शुरू होगा और आप आगे बढ़ जाएंगे.</translation>
 <translation id="5479196819031988440">क्रोमियम OS यह पेज नहीं खोल सकता.</translation>
 <translation id="5480860683791598150">इस साइट से आपकी जगह की जानकारी शेयर करने के लिए क्रोमियम को आपकी जगह की जानकारी का एक्सेस चाहिए</translation>
 <translation id="549669000822060376">कृपया क्रोमियम द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">क्रोमियम सबसे नए वर्शन में अपडेट नहीं कर सका, इसलिए आपको नई सुविधाएं और सुरक्षा सुधार नहीं मिल रहे हैं.</translation>
 <translation id="7901117350626490574">क्रोमियम के लिए एक नया अपडेट उपलब्ध है और जैसे ही आप फिर से लॉन्च करेंगे, अपडेट लागू कर दिया जाएगा.</translation>
 <translation id="7937630085815544518">आपने क्रोमियम में <ph name="USER_EMAIL_ADDRESS" /> के रूप में साइन इन किया था. फिर से साइन इन करने के लिए कृपया उसी खाते का इस्तेमाल करें.</translation>
-<translation id="7962572577636132072">क्रोमियम अपने आप अपडेट हो जाता है इसलिए आपके पास हमेशा नवीनतम वर्शन रहता है.</translation>
 <translation id="7975919845073681630">यह क्रोमियम का द्वितीयक इंस्टॉलेशन है और इसे आपका डिफ़ॉल्ट ब्राउज़र नहीं बनाया जा सकता.</translation>
 <translation id="7979877361127045932">क्रोमियम मेन्यू में छिपाएं</translation>
 <translation id="8013436988911883588">क्रोमियम को ऐक्सेस मिलने के बाद, वेबसाइटें आपसे ऐक्सेस मांग सकेंगी.</translation>
diff --git a/chrome/app/resources/chromium_strings_hr.xtb b/chrome/app/resources/chromium_strings_hr.xtb
index 08bdac0..8710512 100644
--- a/chrome/app/resources/chromium_strings_hr.xtb
+++ b/chrome/app/resources/chromium_strings_hr.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium ne može prikazati pregled ispisa kad nedostaje ugrađeni PDF preglednik.</translation>
 <translation id="5427571867875391349">Postavite Chrome kao zadani preglednik</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium se ažurira automatski, pa uvijek imate najnoviju verziju. Kada se ovo preuzimanje dovrši, Chromium će se pokrenuti ponovo i moći ćete nastaviti.</translation>
 <translation id="5479196819031988440">OS Chromium ne može otvoriti ovu stranicu.</translation>
 <translation id="5480860683791598150">Chromium treba dopuštenje za pristup vašoj lokaciji da bi je podijelio s ovom web-lokacijom</translation>
 <translation id="549669000822060376">Pričekajte da Chromium instalira najnovija ažuriranja sustava.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium se nije mogao ažurirati na najnoviju verziju, tako da nemate nove značajke i sigurnosne popravke.</translation>
 <translation id="7901117350626490574">Dostupno je novo ažuriranje za Chromium i primijenit će se nakon ponovnog pokretanja.</translation>
 <translation id="7937630085815544518">Bili ste prijavljeni na Chromium kao <ph name="USER_EMAIL_ADDRESS" />. Prijavite se ponovo istim računom.</translation>
-<translation id="7962572577636132072">Chromium se automatski ažurira tako da uvijek imate najnoviju verziju.</translation>
 <translation id="7975919845073681630">Ovo je sekundarna instalacija Chromiuma, pa on ne može biti vaš zadani preglednik.</translation>
 <translation id="7979877361127045932">Sakrij u izborniku Chromiuma</translation>
 <translation id="8013436988911883588">Kada Chromium dobije pristup, web-lokacije će vas moći tražiti pristup.</translation>
diff --git a/chrome/app/resources/chromium_strings_hu.xtb b/chrome/app/resources/chromium_strings_hu.xtb
index 3294bb3..abc70b9 100644
--- a/chrome/app/resources/chromium_strings_hu.xtb
+++ b/chrome/app/resources/chromium_strings_hu.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">A Chromium nem tudja megjeleníteni a nyomtatási előnézetet, ha nincs beépített PDF-megjelenítő.</translation>
 <translation id="5427571867875391349">A Chromium beállítása alapértelmezett böngészőként</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Béta</translation>
-<translation id="5466153949126434691">A Chromium automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik. A letöltés befejezése után a Chromium újraindul, és máris rendelkezésre áll.</translation>
 <translation id="5479196819031988440">A Chromium OS nem tudja megnyitni ezt az oldalt.</translation>
 <translation id="5480860683791598150">A Chromiumnak a helyadatokhoz való hozzáférésre van szüksége ahhoz, hogy megoszthassa az Ön tartózkodási helyét a webhellyel</translation>
 <translation id="549669000822060376">Kérjük, várjon, amíg a Chromium telepíti a legutóbbi rendszerfrissítéseket.</translation>
@@ -209,7 +208,6 @@
 <translation id="7867198900892795913">Nem sikerült a Chromium frissítése a legújabb verzióra, így Ön lemarad az új funkciókról és biztonsági javításokról.</translation>
 <translation id="7901117350626490574">Új Chromium-frissítés jelent meg, amely az újraindítás után azonnal érvénybe lép.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" /> néven volt bejelentkezve a Chromiumba. Kérjük, ugyanazzal a fiókkal jelentkezzen be újra.</translation>
-<translation id="7962572577636132072">A Chromium automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik.</translation>
 <translation id="7975919845073681630">Ez a Chromium második telepítése, amelyet nem állíthat be az alapértelmezett böngészővé.</translation>
 <translation id="7979877361127045932">Elrejtés a Chromium-menüben</translation>
 <translation id="8013436988911883588">Miután hozzáférést biztosított a Chromiumnak, a webhelyek is hozzáférést kérhetnek.</translation>
diff --git a/chrome/app/resources/chromium_strings_id.xtb b/chrome/app/resources/chromium_strings_id.xtb
index b205eea..d6f90f3 100644
--- a/chrome/app/resources/chromium_strings_id.xtb
+++ b/chrome/app/resources/chromium_strings_id.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">Chromium tidak dapat menampilkan pratinjau cetak jika penampil PDF bawaan tidak ada.</translation>
 <translation id="5427571867875391349">Setel Chromium sebagai browser default</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium otomatis diperbarui sehingga Anda selalu memiliki versi terbaru. Saat download ini selesai, Chromium akan dimulai ulang dan siap digunakan.</translation>
 <translation id="5479196819031988440">Chromium OS tidak dapat membuka halaman ini.</translation>
 <translation id="5480860683791598150">Chromium memerlukan akses ke lokasi Anda untuk berbagi lokasi dengan situs ini</translation>
 <translation id="549669000822060376">Harap tunggu selagi Chromium memasang pembaruan sistem terkini.</translation>
@@ -212,7 +211,6 @@
 <translation id="7867198900892795913">Chromium tidak dapat diupdate ke versi terbaru, sehingga Anda tidak mendapatkan perbaikan keamanan dan fitur baru.</translation>
 <translation id="7901117350626490574">Update baru untuk Chromium telah tersedia dan akan diterapkan segera setelah diluncurkan ulang.</translation>
 <translation id="7937630085815544518">Anda telah masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Gunakan akun yang sama untuk masuk kembali.</translation>
-<translation id="7962572577636132072">Chromium otomatis diperbarui sehingga Anda selalu memiliki versi terbaru.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan Chromium sekunder, dan tidak dapat digunakan sebagai browser default.</translation>
 <translation id="7979877361127045932">Sembunyikan di menu Chromium</translation>
 <translation id="8013436988911883588">Setelah Chromium memiliki akses, situs dapat meminta akses dari Anda.</translation>
diff --git a/chrome/app/resources/chromium_strings_it.xtb b/chrome/app/resources/chromium_strings_it.xtb
index 55fd6f7..b8f78d7 100644
--- a/chrome/app/resources/chromium_strings_it.xtb
+++ b/chrome/app/resources/chromium_strings_it.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">Impossibile visualizzare l'anteprima di stampa in Chromium senza il visualizzatore PDF integrato.</translation>
 <translation id="5427571867875391349">Imposta Chromium come browser predefinito</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium beta</translation>
-<translation id="5466153949126434691">Chromium si aggiorna automaticamente per consentirti di avere sempre la versione più recente. Al termine del download, Chromium si riavvierà e potrai procedere.</translation>
 <translation id="5479196819031988440">Chromium OS non è in grado di aprire la pagina.</translation>
 <translation id="5480860683791598150">Chromium deve poter accedere alla tua posizione per condividerla con questo sito</translation>
 <translation id="549669000822060376">Attendi mentre Chromium installa gli aggiornamenti di sistema più recenti.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Non è stato possibile aggiornare Chromium alla versione più recente, quindi non potrai utilizzare le nuove funzioni e gli aggiornamenti di sicurezza.</translation>
 <translation id="7901117350626490574">È disponibile un nuovo aggiornamento di Chromium che verrà installato al prossimo riavvio.</translation>
 <translation id="7937630085815544518">Hai eseguito l'accesso a Chromium come <ph name="USER_EMAIL_ADDRESS" />. Utilizza lo stesso account per eseguire di nuovo l'accesso.</translation>
-<translation id="7962572577636132072">Chromium si aggiorna automaticamente per consentirti di avere sempre la versione più recente.</translation>
 <translation id="7975919845073681630">Questa è un'installazione secondaria, di conseguenza Chromium non può essere impostato come browser predefinito.</translation>
 <translation id="7979877361127045932">Nascondi in menu Chromium</translation>
 <translation id="8013436988911883588">Dopo che Chromium avrà ottenuto l'accesso, i siti web potranno chiederti l'accesso.</translation>
diff --git a/chrome/app/resources/chromium_strings_iw.xtb b/chrome/app/resources/chromium_strings_iw.xtb
index 41a28ba6..fd13654 100644
--- a/chrome/app/resources/chromium_strings_iw.xtb
+++ b/chrome/app/resources/chromium_strings_iw.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">‏Chromium לא יכול להראות את התצוגה המקדימה של ההדפסה כשמציג ה-PDF המובנה חסר.</translation>
 <translation id="5427571867875391349">‏הגדר את Chromium כדפדפן ברירת המחדל שלך</translation>
 <translation id="5438241569118040789">‏<ph name="PAGE_TITLE" /> - Chromium בגירסת ביטא</translation>
-<translation id="5466153949126434691">‏Chromium מתעדכן באופן אוטומטי, כך שתמיד ברשותך הגרסה העדכנית ביותר. כשההורדה תסתיים, Chromium יופעל מחדש ותוכל להמשיך.</translation>
 <translation id="5479196819031988440">‏מערכת ההפעלה של Chromium אינה יכול לפתוח את הדף הזה.</translation>
 <translation id="5480860683791598150">‏Chromium זקוק לגישה למיקום שלך כדי לשתף אותו עם האתר הזה</translation>
 <translation id="549669000822060376">‏המתן בזמן ש-Chromium מתקין את עדכוני המערכת האחרונים.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">‏עדכון Chromium לגירסה האחרונה לא הצליח, ולכן אין לך גישה אל תכונות חדשות ותיקוני אבטחה.</translation>
 <translation id="7901117350626490574">‏יש עדכון בשביל Chromium והמערכת תחיל אותו ברגע שתבוצע הפעלה מחדש.</translation>
 <translation id="7937630085815544518">‏נכנסת ל-Chromium כ-<ph name="USER_EMAIL_ADDRESS" />. השתמש באותו חשבון כדי להיכנס שוב.</translation>
-<translation id="7962572577636132072">‏Chromium מתעדכן באופן אוטומטי כך שתמיד ברשותך הגרסה העדכנית ביותר.</translation>
 <translation id="7975919845073681630">‏זוהי התקנה משנית של Chromium, ולא ניתן להפוך אותו לדפדפן ברירת המחדל שלך.</translation>
 <translation id="7979877361127045932">‏הסתר בתפריט Chromium</translation>
 <translation id="8013436988911883588">‏אחרי מתן גישה ל-Chromium, אתרים יוכלו לבקש ממך גישה.</translation>
diff --git a/chrome/app/resources/chromium_strings_ja.xtb b/chrome/app/resources/chromium_strings_ja.xtb
index 4c5c2a44..69fe60f 100644
--- a/chrome/app/resources/chromium_strings_ja.xtb
+++ b/chrome/app/resources/chromium_strings_ja.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">組み込みの PDF ビューアがない場合、Chromium では印刷プレビューを表示できません。</translation>
 <translation id="5427571867875391349">Chromium をデフォルト ブラウザに設定する</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium は自動的に更新されるため、常に最新版をご利用になれます。このダウンロードが完了すると、Chromium が再起動し、すぐにお使いいただけます。</translation>
 <translation id="5479196819031988440">Chromium OS ではこのページを開けません。</translation>
 <translation id="5480860683791598150">このサイトで現在地を共有するには、Chromium で位置情報の使用を許可する必要があります</translation>
 <translation id="549669000822060376">Chromium は最新のシステム アップデートをインストールしています。しばらくお待ちください。</translation>
@@ -212,7 +211,6 @@
 <translation id="7867198900892795913">Chromium を最新版に更新できませんでした。新しい機能とセキュリティ修正は適用されていません。</translation>
 <translation id="7901117350626490574">Chromium の新しいアップデートを利用できます。再起動するとすぐにアップデートが適用されます。</translation>
 <translation id="7937630085815544518">Chromium に <ph name="USER_EMAIL_ADDRESS" /> としてログインしていました。再度ログインするには同じアカウントを使用してください。</translation>
-<translation id="7962572577636132072">Chromium は自動的に更新されるため、常に最新版をご利用になれます。</translation>
 <translation id="7975919845073681630">この Chromium はセカンダリ インストールのため、既定のブラウザには設定できません。</translation>
 <translation id="7979877361127045932">Chromium メニューで非表示</translation>
 <translation id="8013436988911883588">Chromium にアクセスを許可すると、ウェブサイトからアクセスをリクエストできるようになります。</translation>
diff --git a/chrome/app/resources/chromium_strings_kn.xtb b/chrome/app/resources/chromium_strings_kn.xtb
index d395be4..40454c0a 100644
--- a/chrome/app/resources/chromium_strings_kn.xtb
+++ b/chrome/app/resources/chromium_strings_kn.xtb
@@ -114,7 +114,6 @@
 <translation id="5416696090975899932">ಅಂತರ್ನಿರ್ಮಿತ PDF ವೀಕ್ಷಕವು ಇಲ್ಲದಿದ್ದರೆ, ಮುದ್ರಣದ ಪೂರ್ವವೀಕ್ಷಣೆಯನ್ನು ತೋರಿಸಲು Chromium ಗೆ ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5427571867875391349">Chromium ಅನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್‌ ರೂಪದಲ್ಲಿ ಹೊಂದಿಸಿ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ಬೀಟಾ</translation>
-<translation id="5466153949126434691">Chromium ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯುನ್ನು ಹೊಂದಿರುತ್ತೀರಿ. ಈ ಡೌನ್‌ಲೋಡ್‌ ಪೂರ್ಣಗೊಂಡಾಗ, Chromium ಮರುಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಾರ್ಗದಲ್ಲಿ ನೀವು ಇರಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="5479196819031988440">Chromium OS ಗೆ ಈ ಪುಟ ತೆರೆಯಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="5480860683791598150">ಈ ಸೈಟ್‌ ಜೊತೆಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಹಂಚಿಕೊಳ್ಳಲು Chromium ಗೆ ನಿಮ್ಮ ಸ್ಥಳವನ್ನು ಪ್ರವೇಶಿಸುವ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="549669000822060376">ದಯವಿಟ್ಟು ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chromium ಸ್ಥಾಪಿಸುವಾಗ ಕಾಯಿರಿ.</translation>
@@ -205,7 +204,6 @@
 <translation id="7867198900892795913">Chromium ಗೆ ಇತ್ತೀಚಿನ ಆವೃತ್ತಿಗೆ ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ, ಈ ಮೂಲಕ ನೀವು ಹೊಸ ವೈಶಿಷ್ಟ್ಯಗಳು ಮತ್ತು ಭದ್ರತೆ ಸರಿಪಡಿಸುವಿಕೆಗಳನ್ನು ಕಳೆದುಕೊಳ್ಳುತ್ತಿರಬಹುದು.</translation>
 <translation id="7901117350626490574">Chromium ಗೆ ಹೊಸತೊಂದು ಅಪ್‌ಡೇಟ್‌ ಲಭ್ಯವಿದೆ ಮತ್ತು ನೀವು ಮರುಪ್ರಾರಂಭಿಸಿದ ಕೂಡಲೇ ಅದನ್ನು ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" /> ನಂತೆ Chromium ಅನ್ನು ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿರುವಿರಿ. ದಯವಿಟ್ಟು ಮತ್ತೆ ಸೈನ್ ಇನ್ ಮಾಡಲು ಅದೇ ಖಾತೆಯನ್ನು ಬಳಸಿ.</translation>
-<translation id="7962572577636132072">Chromium ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಣಗೊಳ್ಳುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುತ್ತೀರಿ.</translation>
 <translation id="7975919845073681630">ಇದು Chromium ನ ದ್ವಿತೀಯ ಸ್ಥಾಪನೆಯಾಗಿದೆ ಮತ್ತು ಅದನ್ನು ನಿಮ್ಮ ಡಿಫಾಲ್ಟ್ ಬ್ರೌಸರ್ ಆಗಿ ಮಾಡಲಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="7979877361127045932">Chromium ಮೆನುವಿನಲ್ಲಿ ಮರೆಮಾಡು</translation>
 <translation id="8013436988911883588">Chromium ಒಮ್ಮೆ ಪ್ರವೇಶವನ್ನು ಪಡೆದ ಬಳಿಕ, ಪ್ರವೇಶಕ್ಕಾಗಿ ನಿಮ್ಮನ್ನು ಕೇಳಲು ವೆಬ್‍ಸೈಟ್‍ಗಳಿಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.</translation>
diff --git a/chrome/app/resources/chromium_strings_ko.xtb b/chrome/app/resources/chromium_strings_ko.xtb
index 03f56fa..e1c6faf 100644
--- a/chrome/app/resources/chromium_strings_ko.xtb
+++ b/chrome/app/resources/chromium_strings_ko.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">기본 제공되는 PDF 뷰어가 없으면 Chromium에서 인쇄 미리보기를 표시할 수 없습니다.</translation>
 <translation id="5427571867875391349">Chromium을 기본 브라우저로 설정</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium 베타</translation>
-<translation id="5466153949126434691">Chromium이 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다. 이 다운로드가 완료되면 Chromium이 다시 시작되며 계속 작업할 수 있습니다.</translation>
 <translation id="5479196819031988440">Chromium OS에서 이 페이지를 열 수 없음</translation>
 <translation id="5480860683791598150">이 사이트와 위치를 공유하려면 Chromium에 내 위치 액세스 권한이 있어야 합니다</translation>
 <translation id="549669000822060376">Chromium에서 최신 시스템 업데이트를 설치하는 동안 잠시 기다려 주세요.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Chromium을 최신 버전으로 업데이트하지 못했기 때문에 새로운 기능과 보안 수정 사항이 적용되지 않았습니다.</translation>
 <translation id="7901117350626490574">Chromium 업데이트가 있습니다. 다시 시작하면 바로 업데이트됩니다.</translation>
 <translation id="7937630085815544518"><ph name="USER_EMAIL_ADDRESS" />(으)로 Chromium에 로그인되어 있습니다. 같은 계정으로 다시 로그인해 주세요.</translation>
-<translation id="7962572577636132072">Chromium은 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다.</translation>
 <translation id="7975919845073681630">Chromium의 보조 설치이며 기본 브라우저로 설정할 수 없습니다.</translation>
 <translation id="7979877361127045932">Chromium 메뉴에서 숨기기</translation>
 <translation id="8013436988911883588">Chromium에 액세스 권한을 부여하면 웹사이트에서 액세스 권한을 요청할 수 있게 됩니다.</translation>
diff --git a/chrome/app/resources/chromium_strings_lt.xtb b/chrome/app/resources/chromium_strings_lt.xtb
index 6930c54..ba4fb8f6 100644
--- a/chrome/app/resources/chromium_strings_lt.xtb
+++ b/chrome/app/resources/chromium_strings_lt.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">„Chromium“ negalima rodyti spaudinio peržiūros, jei nėra įtaisytos PDF žiūryklės.</translation>
 <translation id="5427571867875391349">Nustatyti „Chromium“ kaip numatytąją naršyklę</translation>
 <translation id="5438241569118040789">„<ph name="PAGE_TITLE" />“ – „Chromium Beta“</translation>
-<translation id="5466153949126434691">„Chromium“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija. Baigus atsisiųsti, „Chrome“ bus paleista iš naujo ir galėsite pradėti ja naudotis.</translation>
 <translation id="5479196819031988440">„Chromium“ OS negali atidaryti šio puslapio.</translation>
 <translation id="5480860683791598150">„Chromium“ reikia leidimo, kad galėtų naudoti jūsų vietovės informaciją ir bendrinti ją su šia svetaine</translation>
 <translation id="549669000822060376">Palaukite, kol „Chromium“ įdiegs naujausius sistemos naujinius.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Nepavyko atnaujinti „Chromium“ į naujausią versiją, todėl nebus pasiekiamos naujos funkcijos ir saugos pataisos.</translation>
 <translation id="7901117350626490574">Pasiekiamas naujas „Chromium“ naujinys, kuris bus pritaikytas, kai paleisite „Chromium“ iš naujo.</translation>
 <translation id="7937630085815544518">Buvote prisijungę prie „Chromium“ kaip <ph name="USER_EMAIL_ADDRESS" />. Prisijungdami vėl naudokite tą pačią paskyrą.</translation>
-<translation id="7962572577636132072">„Chromium“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija.</translation>
 <translation id="7975919845073681630">Tai yra antrinis „Chromium“ diegimas, todėl ji negali būti nustatyta kaip numatytoji naršyklė.</translation>
 <translation id="7979877361127045932">Paslėpti „Chromium“ meniu elementą</translation>
 <translation id="8013436988911883588">Kai „Chromium“ galės pasiekti duomenis, svetainės taip pat galės prašyti suteikti leidimą juos pasiekti.</translation>
diff --git a/chrome/app/resources/chromium_strings_lv.xtb b/chrome/app/resources/chromium_strings_lv.xtb
index d39ea3d9..a847642b 100644
--- a/chrome/app/resources/chromium_strings_lv.xtb
+++ b/chrome/app/resources/chromium_strings_lv.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium nevar parādīt drukas priekšskatījumu, ja nav pieejams iebūvētais PDF skatītājs.</translation>
 <translation id="5427571867875391349">Iestatīt Chromium kā noklusējuma pārlūku</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> — Chromium beta versija</translation>
-<translation id="5466153949126434691">Pārlūks Chromium tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija. Kad šī lejupielāde būs pabeigta, pārlūks Chromium tiks restartēts un varēsiet sākt lietot visjaunāko versiju.</translation>
 <translation id="5479196819031988440">Chromium OS nevar atvērt šo lapu.</translation>
 <translation id="5480860683791598150">Pārlūkam Chromium ir nepieciešama piekļuve jūsu atrašanās vietas datiem, lai varētu tos kopīgot ar šo vietni.</translation>
 <translation id="549669000822060376">Lūdzu, uzgaidiet, kamēr Chromium instalē jaunākos sistēmas atjauninājumus.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Nevarēja atjaunināt uz jaunāko Chromium versiju, tādēļ jūs nevarēsiet piekļūt jaunākajām funkcijām un drošības labojumiem.</translation>
 <translation id="7901117350626490574">Pieejams Chromium atjauninājums, un tas tiks lietots, tiklīdz restartēsiet pārlūku.</translation>
 <translation id="7937630085815544518">Operētājsistēmā Chromium iepriekš pierakstījāties kā lietotājs <ph name="USER_EMAIL_ADDRESS" />. Lai pierakstītos vēlreiz, lūdzu, izmantojiet to pašu kontu.</translation>
-<translation id="7962572577636132072">Pārlūks Chromium tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija.</translation>
 <translation id="7975919845073681630">Šī ir Chromium papildu instalācija, un to nevar izmantot kā noklusējuma pārlūku.</translation>
 <translation id="7979877361127045932">Paslēpt Chromium izvēlnē</translation>
 <translation id="8013436988911883588">Tiklīdz pārlūkam Chromium tiks sniegta piekļuve, vietnes varēs lūgt jums piekļuvi.</translation>
diff --git a/chrome/app/resources/chromium_strings_ml.xtb b/chrome/app/resources/chromium_strings_ml.xtb
index c2f7bed..abb2716 100644
--- a/chrome/app/resources/chromium_strings_ml.xtb
+++ b/chrome/app/resources/chromium_strings_ml.xtb
@@ -118,7 +118,6 @@
 <translation id="5416696090975899932">അടങ്ങിയ PDF വ്യൂവർ ഇല്ലാതിരിക്കുമ്പോൾ, Chromium-ന് പ്രിന്റ് പ്രിവ്യു കാണിക്കാനാവില്ല.</translation>
 <translation id="5427571867875391349">നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറായി Chromium സജ്ജമാക്കുക</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium ബീറ്റ</translation>
-<translation id="5466153949126434691">Chromium സ്വയമേവ അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും. ഈ ഡൗൺലോഡ് പൂർത്തിയാകുമ്പോൾ Chromium പുനരാരംഭിക്കും, അതിനുശേഷം നിങ്ങൾക്ക് തുടരാം.</translation>
 <translation id="5479196819031988440">Chromium OS-ന് ഈ പേജ് തുറക്കാനാവില്ല.</translation>
 <translation id="5480860683791598150">Chromium-ത്തിന് ഈ സൈറ്റുമായി ലൊക്കേഷൻ പങ്കിടുന്നതിന് നിങ്ങളുടെ ലൊക്കേഷനിലേക്കുള്ള ആക്‌സസ് ആവശ്യമാണ്</translation>
 <translation id="549669000822060376">Chromium ഏറ്റവും പുതിയ സിസ്‌റ്റം അപ്‌ഡേറ്റുകൾ ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation>
@@ -214,7 +213,6 @@
 <translation id="7867198900892795913">ഏറ്റവും പുതിയ പതിപ്പിലേക്ക് Chromium അപ്‌ഡേറ്റ് ചെയ്യാനായില്ല, അതിനാൽ പുതിയ ഫീച്ചറുകളും സുരക്ഷാ പരിഹാരങ്ങളും നിങ്ങൾക്ക് ലഭിക്കുന്നില്ല.</translation>
 <translation id="7901117350626490574">Chromium-ത്തിനുള്ള പുതിയൊരു അപ്ഡേറ്റ് ലഭ്യമാണ്, നിങ്ങൾ വീണ്ടും സമാരംഭിക്കുമ്പോൾ ഉടൻ അത് പ്രാബല്യത്തിലാകും.</translation>
 <translation id="7937630085815544518">Chromium-ൽ നിങ്ങൾ <ph name="USER_EMAIL_ADDRESS" /> എന്നായി സൈൻ ഇൻ ചെയ്‌തു. വീണ്ടും സൈൻ ഇൻ ചെയ്യുന്നതിന് സമാന അക്കൗണ്ട് ഉപയോഗിക്കുക.</translation>
-<translation id="7962572577636132072">Chromium സ്വയമേവ അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും.</translation>
 <translation id="7975919845073681630">ഇത് Chromium-ത്തിന്റെ ദ്വിതീയ ഇൻസ്‌റ്റലേഷനായതിനാൽ, നിങ്ങളുടെ ഡിഫോൾട്ട് ബ്രൗസറാക്കാൻ കഴിയില്ല.</translation>
 <translation id="7979877361127045932">Chromium മെനുവിൽ മറയ്‌ക്കുക</translation>
 <translation id="8013436988911883588">Chromium-ത്തിന് ആക്‌സസ് ലഭിച്ചുകഴിഞ്ഞാൽ, വെബ്‌സൈറ്റുകൾക്ക് നിങ്ങളോട് ആക്‌സസ് ചോദിക്കാനാകും.</translation>
diff --git a/chrome/app/resources/chromium_strings_mr.xtb b/chrome/app/resources/chromium_strings_mr.xtb
index c9389fb..50fa3aae 100644
--- a/chrome/app/resources/chromium_strings_mr.xtb
+++ b/chrome/app/resources/chromium_strings_mr.xtb
@@ -17,7 +17,7 @@
 <translation id="1668054258064581266">Chromium वरून तुमचे खाते काढल्यानंतर, प्रभावी होण्यासाठी तुम्हाला तुमचे उघडे टॅब रीलोड करण्याची आवश्यकता असू शकते.</translation>
 <translation id="1688750314291223739">वेबवर तुमची पर्सनलाइझ केलेली ब्राउझर वैशिष्ट्ये सेव्ह करण्यासाठी सिंक सेट करा आणि कोणत्याही कॉंप्युटरवरील Chromium वरून ते अॅक्सेस करा.</translation>
 <translation id="1708666629004767631">Chromium ची नवीन, सुरक्षित आवृत्ती उपलब्ध आहे.</translation>
-<translation id="1766096484055239003">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करणे अावश्यक आहे</translation>
+<translation id="1766096484055239003">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation>
 <translation id="1774152462503052664">Chromium बॅकग्राउंडमध्ये चालू द्या</translation>
 <translation id="1779356040007214683">Chromium अधिक सुरक्षित बनविण्‍यासाठी, आम्‍ही <ph name="IDS_EXTENSION_WEB_STORE_TITLE" /> मध्‍ये सूचीबद्ध नसलेले आणि आपल्‍या माहिती शिवाय कदाचित जोडले गेलेले काही विस्‍तार अक्षम केले.</translation>
 <translation id="1808667845054772817">Chromium पुनर्स्थापित करा</translation>
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">बिल्ड इन PDF दर्शक उपस्थित नसतात तेव्हा Chromium मुद्रण पूर्वावलोकन दाखवू शकत नाही.</translation>
 <translation id="5427571867875391349">तुमचा डीफॉल्ट ब्राउझर म्हणून Chromium सेट करा</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium बीटा</translation>
-<translation id="5466153949126434691">Chromium आपोआप अपडेट होते जेणेकरून तुमच्याकडे नेहमी सर्वात नवीन आवृत्ती असते. जेव्हा हे डाउनलोड पूर्ण होते, तेव्हा Chromium रीस्टार्ट होईल आणि तुम्ही तुमच्या मार्गावर असाल.</translation>
 <translation id="5479196819031988440">Chromium OS हे पृष्ठ उघडू शकत नाही.</translation>
 <translation id="5480860683791598150">या साइटसोबत तुमचे स्थान शेअर करण्यासाठी Chromium ला तुमच्या स्थानाचा अॅक्सेस हवा आहे</translation>
 <translation id="549669000822060376">कृपया Chromium नवीनतम सिस्टम अपडेट इंस्टॉल करेपर्यंत प्रतीक्षा करा.</translation>
@@ -210,7 +209,6 @@
 <translation id="7867198900892795913">Chromium नवीनतम आवृत्तीवर अपडेट होऊ शकले नाही, त्यामुळे तुम्ही नवीन वैशिष्ट्ये आणि सुरक्षितता निराकरणे गमावत आहात.</translation>
 <translation id="7901117350626490574">Chromium साठी नवीन अपडेट उपलब्ध आहे आणि तुम्ही रीलाँच करताच ते लागू केले जाईल.</translation>
 <translation id="7937630085815544518">तुम्ही <ph name="USER_EMAIL_ADDRESS" /> या रुपात Chromium मध्ये साइन इन केले होते. कृपया पुन्हा साइन इन करण्यासाठी समान खाते वापरा.</translation>
-<translation id="7962572577636132072">Chromium स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी सर्वात नवीन आवृत्ती असते.</translation>
 <translation id="7975919845073681630">ही Chromium ची दुय्यम स्थापना असून त्यास तुमचा डीफॉल्ट ब्राउझर बनवू शकत नाही.</translation>
 <translation id="7979877361127045932">Chromium मेनूमध्‍ये लपवा</translation>
 <translation id="8013436988911883588">एकदा का Chromium ला ॲक्सेस मिळाला की, वेबसाइट तुम्हाला ॲक्सेससाठी विचारू शकतील.</translation>
diff --git a/chrome/app/resources/chromium_strings_ms.xtb b/chrome/app/resources/chromium_strings_ms.xtb
index bf34ec7..bb5331f3 100644
--- a/chrome/app/resources/chromium_strings_ms.xtb
+++ b/chrome/app/resources/chromium_strings_ms.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium tidak dapat memaparkan pratonton cetakan apabila alat lihat PDF terbina dalam tiada.</translation>
 <translation id="5427571867875391349">Tetapkan Chromium sebagai penyemak imbas lalai anda</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang terbaharu. Apabila muat turun ini selesai, Chromium akan dimulakan semula dan anda sudah boleh menggunakannya.</translation>
 <translation id="5479196819031988440">OS Chromium tidak boleh membuka halaman ini.</translation>
 <translation id="5480860683791598150">Chromium memerlukan akses kepada lokasi anda untuk berkongsi lokasi dengan tapak ini</translation>
 <translation id="549669000822060376">Sila tunggu sementara Chromium memasang kemas kini sistem terkini.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium tidak dapat mengemas kini kepada versi terkini, maka anda terlepas ciri baharu dan penyelesaian keselamatan.</translation>
 <translation id="7901117350626490574">Kemas kini baharu tersedia untuk Chromium dan akan digunakan sebaik sahaja anda melancarkan Chromium semula.</translation>
 <translation id="7937630085815544518">Anda telah log masuk ke Chromium sebagai <ph name="USER_EMAIL_ADDRESS" />. Sila gunakan akaun yang sama untuk log masuk lagi.</translation>
-<translation id="7962572577636132072">Chromium dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang terbaharu.</translation>
 <translation id="7975919845073681630">Ini adalah pemasangan kedua Chromium dan tidak boleh dijadikan penyemak imbas lalai anda.</translation>
 <translation id="7979877361127045932">Sembunyikan dalam menu Chromium</translation>
 <translation id="8013436988911883588">Sebaik sahaja Chromium mendapat akses, tapak web akan dapat meminta akses daripada anda.</translation>
diff --git a/chrome/app/resources/chromium_strings_nl.xtb b/chrome/app/resources/chromium_strings_nl.xtb
index 75fe279..b6d9329f 100644
--- a/chrome/app/resources/chromium_strings_nl.xtb
+++ b/chrome/app/resources/chromium_strings_nl.xtb
@@ -118,7 +118,6 @@
 <translation id="5416696090975899932">Chromium kan het afdrukvoorbeeld niet weergeven wanneer de ingebouwde pdf-viewer ontbreekt.</translation>
 <translation id="5427571867875391349">Chromium instellen als je standaardbrowser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium bèta</translation>
-<translation id="5466153949126434691">Chromium wordt automatisch bijgewerkt, zodat je altijd beschikt over de nieuwste versie. Wanneer deze download is voltooid, wordt Chromium opnieuw gestart en kun je doorgaan.</translation>
 <translation id="5479196819031988440">Chromium OS kan deze pagina niet openen.</translation>
 <translation id="5480860683791598150">Chromium heeft toegang tot je locatie nodig om je locatie met deze site te delen</translation>
 <translation id="549669000822060376">Wacht terwijl Chromium de nieuwste systeemupdates installeert.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium kan niet worden geüpdatet naar de nieuwste versie, dus je loopt nieuwe functies en beveiligingsoplossingen mis.</translation>
 <translation id="7901117350626490574">Er is een nieuwe update voor Chromium beschikbaar die wordt toegepast zodra je het programma opnieuw start.</translation>
 <translation id="7937630085815544518">Je bent ingelogd bij Chromium als <ph name="USER_EMAIL_ADDRESS" />. Gebruik hetzelfde account om opnieuw in te loggen.</translation>
-<translation id="7962572577636132072">Chromium wordt automatisch bijgewerkt, zodat je altijd beschikt over de nieuwste versie.</translation>
 <translation id="7975919845073681630">Dit is een tweede installatie van Chromium en kan niet als standaardbrowser worden ingesteld.</translation>
 <translation id="7979877361127045932">Verbergen in Chromium-menu</translation>
 <translation id="8013436988911883588">Zodra Chromium toegang heeft, kunnen websites je om toegang vragen.</translation>
diff --git a/chrome/app/resources/chromium_strings_no.xtb b/chrome/app/resources/chromium_strings_no.xtb
index fb787d0..a3b2078 100644
--- a/chrome/app/resources/chromium_strings_no.xtb
+++ b/chrome/app/resources/chromium_strings_no.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium kan ikke vise forhåndsvisningen av utskrift når det innebygde PDF-visningsprogrammet mangler.</translation>
 <translation id="5427571867875391349">Bruk Chromium som standard nettleser</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – betaversjon av Chromium</translation>
-<translation id="5466153949126434691">Chromium oppdateres automatisk, sånn at du alltid har den nyeste versjonen. Når denne nedlastingen er fullført, kommer Chromium til å starte på nytt, og du er i gang.</translation>
 <translation id="5479196819031988440">Chromium OS kan ikke åpne denne siden.</translation>
 <translation id="5480860683791598150">Chromium trenger tilgang til posisjonen din for å kunne dele den med dette nettstedet</translation>
 <translation id="549669000822060376">Vent mens Chromium installerer de nyeste systemoppdateringene.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium kunne ikke oppdateres til den nyeste versjonen, så du går glipp av nye funksjoner og sikkerhetsforbedringer.</translation>
 <translation id="7901117350626490574">En ny oppdatering for Chromium er tilgjengelig og tas i bruk når du starter Chromium på nytt.</translation>
 <translation id="7937630085815544518">Du ble logget på Chromium som <ph name="USER_EMAIL_ADDRESS" />. Du må logge deg på igjen med samme konto.</translation>
-<translation id="7962572577636132072">Chromium oppdateres automatisk, sånn at du alltid har den nyeste versjonen.</translation>
 <translation id="7975919845073681630">Dette er en sekundær installering av Chromium. Den kan ikke brukes som standardnettleser.</translation>
 <translation id="7979877361127045932">Skjul i Chromium-menyen</translation>
 <translation id="8013436988911883588">Når Chromium har fått tilgang, kan nettsteder spørre deg om tilgang.</translation>
diff --git a/chrome/app/resources/chromium_strings_pl.xtb b/chrome/app/resources/chromium_strings_pl.xtb
index 226016b..c66d648f 100644
--- a/chrome/app/resources/chromium_strings_pl.xtb
+++ b/chrome/app/resources/chromium_strings_pl.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">Chromium nie może pokazać podglądu wydruku, gdy nie ma wbudowanej przeglądarki PDF.</translation>
 <translation id="5427571867875391349">Ustaw Chromium jako domyślną przeglądarkę</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium aktualizuje się automatycznie, więc zawsze masz najnowszą wersję. Po zakończeniu pobierania Chromium uruchomi się ponownie i będzie gotowy do działania.</translation>
 <translation id="5479196819031988440">System operacyjny Chromium nie może otworzyć tej strony.</translation>
 <translation id="5480860683791598150">Chromium musi mieć dostęp do Twojej lokalizacji, by udostępnić ją tej stronie</translation>
 <translation id="549669000822060376">Poczekaj, aż Chromium zainstaluje najnowsze aktualizacje systemu.</translation>
@@ -210,7 +209,6 @@
 <translation id="7867198900892795913">Aktualizacja Chromium do najnowszej wersji nie udała się, więc nie masz dostępu do najnowszych funkcji i poprawek zabezpieczeń.</translation>
 <translation id="7901117350626490574">Dostępna jest aktualizacja Chromium, która zostanie zastosowana natychmiast po ponownym uruchomieniu.</translation>
 <translation id="7937630085815544518">Byłeś zalogowany w Chromium jako <ph name="USER_EMAIL_ADDRESS" />. Zaloguj się ponownie, korzystając z tego samego konta.</translation>
-<translation id="7962572577636132072">Chromium aktualizuje się automatycznie, więc zawsze masz najnowszą wersję.</translation>
 <translation id="7975919845073681630">To jest druga instalacja Chromium. Nie można ustawić jej jako przeglądarki domyślnej.</translation>
 <translation id="7979877361127045932">Ukryj w menu Chromium</translation>
 <translation id="8013436988911883588">Gdy Chromium będzie mieć dostęp, strony będą mogły prosić Cię o dostęp.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-BR.xtb b/chrome/app/resources/chromium_strings_pt-BR.xtb
index 0361f31..dd9db4c4 100644
--- a/chrome/app/resources/chromium_strings_pt-BR.xtb
+++ b/chrome/app/resources/chromium_strings_pt-BR.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">O Chromium não pode mostrar a visualização de impressão sem o visualizador de PDF integrado.</translation>
 <translation id="5427571867875391349">Definir o Chromium como seu navegador padrão</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" />: Chromium Beta</translation>
-<translation id="5466153949126434691">O Chromium é atualizado automaticamente para que você sempre tenha a versão mais recente. Quando o download estiver concluído, o Chromium será reiniciado e você estará pronto.</translation>
 <translation id="5479196819031988440">O Chromium OS não pode abrir essa página.</translation>
 <translation id="5480860683791598150">O Chromium precisa acessar seu local para compartilhá-lo com este site</translation>
 <translation id="549669000822060376">Aguarde enquanto o Chromium instala as últimas atualizações do sistema.</translation>
@@ -206,7 +205,6 @@
 <translation id="7867198900892795913">Não foi possível atualizar o Chromium para a versão mais recente. Com isso, você está perdendo novos recursos e correções de segurança.</translation>
 <translation id="7901117350626490574">Uma nova atualização está disponível para o Chromium e será aplicada assim que você reiniciá-lo.</translation>
 <translation id="7937630085815544518">Você estava conectado ao Chromium como <ph name="USER_EMAIL_ADDRESS" />. Use a mesma conta para fazer login novamente.</translation>
-<translation id="7962572577636132072">O Chromium é atualizado automaticamente para que você sempre tenha a versão mais recente.</translation>
 <translation id="7975919845073681630">Como esta é uma instalação secundária do Chromium, ele não pode se tornar seu navegador padrão.</translation>
 <translation id="7979877361127045932">Esconder no menu do Chromium</translation>
 <translation id="8013436988911883588">Assim que o Chromium tiver acesso, os sites poderão solicitar acesso.</translation>
diff --git a/chrome/app/resources/chromium_strings_pt-PT.xtb b/chrome/app/resources/chromium_strings_pt-PT.xtb
index 53f49f2..8bf43ba 100644
--- a/chrome/app/resources/chromium_strings_pt-PT.xtb
+++ b/chrome/app/resources/chromium_strings_pt-PT.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">O Chromium não pode apresentar a pré-visualização de impressão com o visualizador de PDFs incorporado em falta.</translation>
 <translation id="5427571867875391349">Definir o Chromium como o seu navegador predefinido</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">O Chromium é atualizado automaticamente para que tenha sempre a versão mais recente. Quando a transferência estiver concluída, o Chromium irá reiniciar e o processo estará terminado.</translation>
 <translation id="5479196819031988440">O SO Chromium não consegue abrir esta página.</translation>
 <translation id="5480860683791598150">O Chromium necessita de aceder à sua localização para a partilhar com este site.</translation>
 <translation id="549669000822060376">Aguarde até que o Chromium instale as atualizações do sistema mais recentes.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Não foi possível atualizar o Chromium para a versão mais recente, pelo que não está a beneficiar das novas funcionalidades e correções de segurança.</translation>
 <translation id="7901117350626490574">Está disponível uma atualização para o Chromium que será aplicada logo que o reinicie.</translation>
 <translation id="7937630085815544518">Iniciou sessão no Chromium com a conta <ph name="USER_EMAIL_ADDRESS" />. Utilize a mesma conta para iniciar sessão novamente.</translation>
-<translation id="7962572577636132072">O Chromium é atualizado automaticamente para que tenha sempre a versão mais recente.</translation>
 <translation id="7975919845073681630">Esta é uma instalação secundária do Chromium, pelo que não pode tornar-se o navegador predefinido.</translation>
 <translation id="7979877361127045932">Ocultar no menu do Chromium</translation>
 <translation id="8013436988911883588">Assim que o Chromium tiver acesso, os Websites poderão solicitar-lhe o acesso.</translation>
diff --git a/chrome/app/resources/chromium_strings_ro.xtb b/chrome/app/resources/chromium_strings_ro.xtb
index 62042cf4..2071c475 100644
--- a/chrome/app/resources/chromium_strings_ro.xtb
+++ b/chrome/app/resources/chromium_strings_ro.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium nu poate afișa previzualizarea înainte de printare când vizualizatorul PDF încorporat lipsește.</translation>
 <translation id="5427571867875391349">Setați Chromium ca browser prestabilit</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium se actualizează automat, deci ai întotdeauna cea mai recentă versiune. După această descărcare, Chromium va reporni și va fi gata de utilizare.</translation>
 <translation id="5479196819031988440">Sistemul de operare Chromium nu poate deschide pagina.</translation>
 <translation id="5480860683791598150">Chromium are nevoie de acces la locația ta ca să permită accesul la locație pentru acest site</translation>
 <translation id="549669000822060376">Așteaptă până când Chromium instalează cele mai recente actualizări de sistem.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium nu s-a putut actualiza la cea mai recentă versiune. Astfel, pierzi noi funcții și remedieri de securitate.</translation>
 <translation id="7901117350626490574">Este disponibilă o nouă actualizare pentru Chromium, iar aceasta va fi aplicată după repornire.</translation>
 <translation id="7937630085815544518">Ați fost conectat(ă) la Chromium ca <ph name="USER_EMAIL_ADDRESS" />. Utilizați același cont pentru a vă conecta din nou.</translation>
-<translation id="7962572577636132072">Chromium se actualizează automat, deci vei avea întotdeauna cea mai recentă versiune.</translation>
 <translation id="7975919845073681630">Aceasta este o instalare secundară a browserului Chromium și nu poate fi setat ca browser prestabilit.</translation>
 <translation id="7979877361127045932">Ascunde în meniul Chromium</translation>
 <translation id="8013436988911883588">Odată ce Chromium are acces, site-urile web îți vor putea solicita accesul.</translation>
diff --git a/chrome/app/resources/chromium_strings_ru.xtb b/chrome/app/resources/chromium_strings_ru.xtb
index 28e2d19f..8f60b64 100644
--- a/chrome/app/resources/chromium_strings_ru.xtb
+++ b/chrome/app/resources/chromium_strings_ru.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">Если отсутствует встроенная программа для работы с PDF-файлами, предварительный просмотр в Chromium невозможен.</translation>
 <translation id="5427571867875391349">Сделать Chromium браузером по умолчанию</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium (бета-версия)</translation>
-<translation id="5466153949126434691">Chromium обновляется автоматически, поэтому у вас всегда будет установлена последняя версия. После завершения скачивания и перезагрузки вы сможете продолжить работу.</translation>
 <translation id="5479196819031988440">Chromium OS не может открыть эту страницу</translation>
 <translation id="5480860683791598150">Для этого сайта Chromium запрашивает доступ к данным о вашем местоположении.</translation>
 <translation id="549669000822060376">Подождите, пока Chromium устанавливает последние обновления системы</translation>
@@ -208,7 +207,6 @@
 <translation id="7867198900892795913">Не удалось установить последнюю версию Chromium, в которой добавлены новые функции и обновления системы безопасности.</translation>
 <translation id="7901117350626490574">Для Chromium доступно обновление. Оно будет установлено при перезапуске браузера.</translation>
 <translation id="7937630085815544518">Ранее вы входили в Chromium как <ph name="USER_EMAIL_ADDRESS" />. Войдите снова, используя тот же аккаунт.</translation>
-<translation id="7962572577636132072">Chromium обновляется автоматически, поэтому у вас всегда будет установлена последняя версия.</translation>
 <translation id="7975919845073681630">Это дополнительная установка Chromium. Его нельзя сделать браузером по умолчанию.</translation>
 <translation id="7979877361127045932">Не показывать в меню Chromium</translation>
 <translation id="8013436988911883588">Когда вы предоставите доступ Chromium, веб-сайты также смогут запрашивать у вас доступ.</translation>
diff --git a/chrome/app/resources/chromium_strings_sk.xtb b/chrome/app/resources/chromium_strings_sk.xtb
index bb4ee85b..77e90ca 100644
--- a/chrome/app/resources/chromium_strings_sk.xtb
+++ b/chrome/app/resources/chromium_strings_sk.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Keď vstavaný zobrazovač súborov PDF chýba, Google Chrome nemôže zobraziť ukážku pred tlačou.</translation>
 <translation id="5427571867875391349">Nastaviť Chromium ako predvolený prehliadač</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu. Po dokončení sťahovania sa Chromium reštartujte a začnete používať aktuálnu verziu.</translation>
 <translation id="5479196819031988440">Chromium OS nedokáže túto stránku otvoriť.</translation>
 <translation id="5480860683791598150">Chromium potrebuje prístup k vašej polohe, aby ju mohol zdieľať s týmto webom</translation>
 <translation id="549669000822060376">Počkajte, kým Chromium nainštaluje najnovšie aktualizácie systému.</translation>
@@ -214,7 +213,6 @@
 <translation id="7867198900892795913">Chromium sa nepodarilo aktualizovať na najnovšiu verziu. K dispozícii tak nie sú niektoré nové funkcie ani bezpečnostné opravy.</translation>
 <translation id="7901117350626490574">K dispozícii je aktualizácia pre Chromium, ktorá bude uplatnená po najbližšom opätovnom spustení.</translation>
 <translation id="7937630085815544518">Do prehliadača Chromium ste boli prihlásený/-á ako <ph name="USER_EMAIL_ADDRESS" />. Ak sa chcete prihlásiť znova, použite rovnaký účet.</translation>
-<translation id="7962572577636132072">Chromium sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu.</translation>
 <translation id="7975919845073681630">Toto je sekundárna inštalácia prehliadača Chromium – nemôže byť nastavený ako váš predvolený prehliadač.</translation>
 <translation id="7979877361127045932">Skryť v Ponuke Chromium</translation>
 <translation id="8013436988911883588">Keď Chromium získa prístup, weby vás budú môcť žiadať o prístup.</translation>
diff --git a/chrome/app/resources/chromium_strings_sl.xtb b/chrome/app/resources/chromium_strings_sl.xtb
index cc4e472..0583c6c 100644
--- a/chrome/app/resources/chromium_strings_sl.xtb
+++ b/chrome/app/resources/chromium_strings_sl.xtb
@@ -120,7 +120,6 @@
 <translation id="5416696090975899932">Chromium ne more pokazati predogleda tiskanja, če ni vgrajenega pregledovalnika datotek PDF.</translation>
 <translation id="5427571867875391349">Nastavitev Chromiuma za privzeti brskalnik</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – različica beta Chromiuma</translation>
-<translation id="5466153949126434691">Chromium se samodejno posodablja, zato boste vedno imeli najnovejšo različico. Ko bo ta prenos končan, se bo Chromium znova zagnal in lahko boste nadaljevali z delom.</translation>
 <translation id="5479196819031988440">OS Chromium ne more odpreti te strani.</translation>
 <translation id="5480860683791598150">Chromium potrebuje dostop do vaše lokacije, da jo bo lahko delil s tem spletnim mestom</translation>
 <translation id="549669000822060376">Počakajte, da Chromium namesti najnovejše sistemske posodobitve.</translation>
@@ -216,7 +215,6 @@
 <translation id="7867198900892795913">Chromiuma ni bilo mogoče posodobiti na najnovejšo različico, zato nimate novih funkcij in varnostnih popravkov.</translation>
 <translation id="7901117350626490574">Na voljo je nova posodobitev za Chromium, ki bo nameščena, takoj ko ga znova zaženete.</translation>
 <translation id="7937630085815544518">V Chromium ste bili prijavljeni kot <ph name="USER_EMAIL_ADDRESS" />. Pri vnovični prijavi uporabite isti račun.</translation>
-<translation id="7962572577636132072">Chromium se samodejno posodablja, zato boste vedno imeli najnovejšo različico.</translation>
 <translation id="7975919845073681630">To je sekundarna namestitev Chromiuma in ga ni mogoče nastaviti kot privzeti brskalnik.</translation>
 <translation id="7979877361127045932">Skrij v meniju Chromiuma</translation>
 <translation id="8013436988911883588">Ko bo imel Chromium dostop, vas bodo spletna mesta lahko pozvala k omogočanju dostopa.</translation>
diff --git a/chrome/app/resources/chromium_strings_sr.xtb b/chrome/app/resources/chromium_strings_sr.xtb
index 6258af34..43ff6dd 100644
--- a/chrome/app/resources/chromium_strings_sr.xtb
+++ b/chrome/app/resources/chromium_strings_sr.xtb
@@ -118,7 +118,6 @@
 <translation id="5416696090975899932">Chromium не може да покаже приказ пре штампања када недостаје уграђени PDF приказивач.</translation>
 <translation id="5427571867875391349">Подеси Chromium као подразумевани прегледач</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium бета</translation>
-<translation id="5466153949126434691">Chromium се аутоматски ажурира, па увек имате најновију верзију. Када ово преузимање буде довршено, Chromium ће се поново покренути и бићете спремни.</translation>
 <translation id="5479196819031988440">Chromium ОС не може да отвори ову страницу.</translation>
 <translation id="5480860683791598150">Chromium тражи приступ вашој локацији да бисте је делили са овим сајтом</translation>
 <translation id="549669000822060376">Сачекајте да Chromium инсталира најновија ажурирања система.</translation>
@@ -214,7 +213,6 @@
 <translation id="7867198900892795913">Chromium није успео да се ажурира на најновију верзију, па пропуштате нове функције и безбедносне исправке.</translation>
 <translation id="7901117350626490574">Ново ажурирање за Chromium је доступно и примениће се чим га поново покренете.</translation>
 <translation id="7937630085815544518">Били сте пријављени на Chromium као <ph name="USER_EMAIL_ADDRESS" />. Користите исти налог да бисте се поново пријавили.</translation>
-<translation id="7962572577636132072">Chromium се аутоматски ажурира, па увек имате најновију верзију.</translation>
 <translation id="7975919845073681630">Ово је секундарна инсталација Chromium-а па не можете да га подесите као подразумевани прегледач.</translation>
 <translation id="7979877361127045932">Сакриј у Chromium менију</translation>
 <translation id="8013436988911883588">Када Chromium добије приступ, веб-сајтови ће моћи да затраже приступ.</translation>
diff --git a/chrome/app/resources/chromium_strings_sv.xtb b/chrome/app/resources/chromium_strings_sv.xtb
index 740c297..d482a84 100644
--- a/chrome/app/resources/chromium_strings_sv.xtb
+++ b/chrome/app/resources/chromium_strings_sv.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Chromium kan inte visa förhandsgranskning av en utskrift när det inbyggda PDF-visningsprogrammet saknas.</translation>
 <translation id="5427571867875391349">Använd Chromium som standardwebbläsare</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium uppdateras automatiskt så att du alltid har den senaste versionen. När den här nedladdningen är klar startas Chromium om och sedan är du igång.</translation>
 <translation id="5479196819031988440">Det går inte att öppna den här sidan i Chromium OS.</translation>
 <translation id="5480860683791598150">Du behöver ge Chromium åtkomst till din plats om den ska kunna delas med webbplatsen</translation>
 <translation id="549669000822060376">Vänta medan de senaste systemuppdateringarna installeras av Chromium.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Det gick inte att uppdatera Chromium till den senaste versionen. Därför går du miste om nya funktioner och säkerhetskorrigeringar.</translation>
 <translation id="7901117350626490574">Det finns en ny Chromium-uppdatering som tillämpas så snart du startar om.</translation>
 <translation id="7937630085815544518">Du var inloggad i Chromium som <ph name="USER_EMAIL_ADDRESS" />. Använd samma konto när du loggar in igen.</translation>
-<translation id="7962572577636132072">Chromium uppdateras automatiskt så att du alltid har den senaste versionen.</translation>
 <translation id="7975919845073681630">Det här är en sekundär installation av Chromium. Det går inte att göra den till standardwebbläsare.</translation>
 <translation id="7979877361127045932">Dölj i Chromium-menyn</translation>
 <translation id="8013436988911883588">När du har gett Chromium åtkomst kan webbplatser begära att få åtkomst.</translation>
diff --git a/chrome/app/resources/chromium_strings_sw.xtb b/chrome/app/resources/chromium_strings_sw.xtb
index 009a077c..6ba296a 100644
--- a/chrome/app/resources/chromium_strings_sw.xtb
+++ b/chrome/app/resources/chromium_strings_sw.xtb
@@ -119,7 +119,6 @@
 <translation id="5416696090975899932">Chromium haiwezi kuonyesha onyesho la kukagua kwanza chapisho wakati kitazamaji kilichojengewa ndani cha PDF kinakosekana.</translation>
 <translation id="5427571867875391349">Weka Chromium kuwa kivinjari chako chaguomsingi</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Beta ya Chromium</translation>
-<translation id="5466153949126434691">Chromium husasisha kiotomatiki ili uwe na toleo jipya zaidi wakati wowote. Upakuaji huu unapokamilika, Chromium itajizima na kuwaka tena na utaanza kutumia.</translation>
 <translation id="5479196819031988440">Mfumo wa Uendeshaji wa Chromium hauwezi kufungua ukurasa huu.</translation>
 <translation id="5480860683791598150">Chromium inahitaji kufikia maelezo ya mahali ulipo ili kushiriki mahali ulipo na tovuti hii</translation>
 <translation id="549669000822060376">Tafadhali subiri Chromium inaposakinisha sasisho mpya ya mfumo.</translation>
@@ -215,7 +214,6 @@
 <translation id="7867198900892795913">Chromium imeshindwa kusasisha toleo jipya, kwa hivyo hutapata masasisho ya usalama na vipengele vipya.</translation>
 <translation id="7901117350626490574">Sasisho jipya la Chromium linapatikana na litaanza kutumika pindi utakapofungua tena.</translation>
 <translation id="7937630085815544518">Uliingia kwenye Chromium kama <ph name="USER_EMAIL_ADDRESS" />. Tafadhali tumia akaunti hiyo hiyo kuingia tena.</translation>
-<translation id="7962572577636132072">Chromium husasisha kiotomatiki, kwa hivyo, utakuwa na toleo jipya zaidi wakati wowote.</translation>
 <translation id="7975919845073681630">Huu ni usakinishaji wa pili wa Chromium, na haiwezi kufanywa kuwa kivinjari chako chaguomsingi.</translation>
 <translation id="7979877361127045932">Ficha katika menyu ya Chromium</translation>
 <translation id="8013436988911883588">Chromium itakapopata idhini, tovuti zitaweza kukuomba idhini ya kufikia.</translation>
diff --git a/chrome/app/resources/chromium_strings_ta.xtb b/chrome/app/resources/chromium_strings_ta.xtb
index 4a2efbf..f7c1e2c 100644
--- a/chrome/app/resources/chromium_strings_ta.xtb
+++ b/chrome/app/resources/chromium_strings_ta.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">உள்ளமைக்கப்பட்ட PDF வியூவர் இல்லையென்றால், Chromium அச்சிடல் மாதிரிக்காட்சியைக் காண்பிக்காது.</translation>
 <translation id="5427571867875391349">உங்கள் இயல்புநிலை உலாவியாக Chromium ஐ அமை</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium பீட்டா</translation>
-<translation id="5466153949126434691">Chromium தானாகவே புதுப்பித்துக்கொள்வதால், எப்போதுமே புதிய பதிப்பைப் பெறுவீர்கள். இந்தப் பதிவிறக்கம் முடியும்போது, Chromium மறுதொடக்கம் செய்யும், பிறகு உங்கள் பணியைத் தொடரலாம்.</translation>
 <translation id="5479196819031988440">Chromium OS ஆல் இந்தப் பக்கத்தைத் திறக்க முடியாது.</translation>
 <translation id="5480860683791598150">இந்தத் தளத்துடன் இருப்பிடத்தைப் பகிர Chromiumமுக்கு உங்கள் இருப்பிடத்திற்கான அணுகல் தேவை</translation>
 <translation id="549669000822060376">சமீபத்திய முறைமை புதுப்பிப்புகளை Chromium நிறுவும் வரை காத்திருக்கவும்.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium சமீபத்திய பதிப்பிற்குப் புதுப்பிக்கப்படவில்லை என்பதால், புதிய அம்சங்களையும் பாதுகாப்புத் திருத்தங்களையும் தவறவிடுகிறீர்கள்.</translation>
 <translation id="7901117350626490574">Chromiumமின் புதிய புதுப்பிப்பு உள்ளது, மீண்டும் தொடங்கும்போது அது பயன்படுத்தப்படும்.</translation>
 <translation id="7937630085815544518">Chromiumமில் <ph name="USER_EMAIL_ADDRESS" /> ஆக உள்நுழைந்திருந்தீர்கள். மீண்டும் உள்நுழைய அதே கணக்கைப் பயன்படுத்தவும்.</translation>
-<translation id="7962572577636132072">Chromium தானாகவே புதுப்பித்துக்கொள்வதால், எப்போதுமே புதிய பதிப்பைப் பெறுவீர்கள்.</translation>
 <translation id="7975919845073681630">இது Chromium இன் இரண்டாம் நிலை நிறுவல் என்பதால், அதை இயல்புநிலை உலாவியாக அமைக்க முடியாது.</translation>
 <translation id="7979877361127045932">Chromium மெனுவில் மறை</translation>
 <translation id="8013436988911883588">Chromiumமுக்கு அணுகல் கிடைத்தவுடன், இணையதளங்கள் உங்களிடம் அணுகலைக் கோர முடியும்.</translation>
diff --git a/chrome/app/resources/chromium_strings_te.xtb b/chrome/app/resources/chromium_strings_te.xtb
index 89887ab..a0a40ab 100644
--- a/chrome/app/resources/chromium_strings_te.xtb
+++ b/chrome/app/resources/chromium_strings_te.xtb
@@ -113,7 +113,6 @@
 <translation id="5416696090975899932">అంతర్నిర్మిత PDF వ్యూయర్ లేనప్పుడు Chromium ముద్రణ ప్రివ్యూని చూపించదు.</translation>
 <translation id="5427571867875391349">Chromiumను మీ డిఫాల్ట్ బ్రౌజర్‌గా సెట్ చేయండి</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium బీటా</translation>
-<translation id="5466153949126434691">Chromium ఆటోమేటిక్‌గా అప్‌డేట్ అవుతుంది కాబట్టి మీ వద్ద ఎప్పుడూ తాజా వెర్షన్ ఉంటుంది. ఈ డౌన్‌లోడ్ పూర్తయినప్పుడు, Chromium పునఃప్రారంభించబడుతుంది, మీరు మీ పనిని కొనసాగించవచ్చు.</translation>
 <translation id="5479196819031988440">Chromium OS ఈ పేజీని తెరవలేదు.</translation>
 <translation id="5480860683791598150">ఈ సైట్‌తో మీ స్థానాన్ని షేర్ చేయడానికి Chromiumకు మీ స్థాన యాక్సెస్ అవసరం</translation>
 <translation id="549669000822060376">దయచేసి Chromium తాజా సిస్టమ్ నవీకరణలను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
@@ -205,7 +204,6 @@
 <translation id="7867198900892795913">Chromiumను తాజా వెర్షన్‌కు అప్‌డేట్ చేయడం సాధ్యం కాలేదు, కాబట్టి మీరు కొత్త ఫీచర్‌లు మరియు భద్రతా పరిష్కారాలను పొందడం లేదు.</translation>
 <translation id="7901117350626490574">Chromiumకు కొత్త అప్‌డేట్ అందుబాటులో ఉంది మరియు మీరు పునఃప్రారంభించిన వెంటనే వర్తింపజేయబడుతుంది.</translation>
 <translation id="7937630085815544518">మీరు <ph name="USER_EMAIL_ADDRESS" />గా Chromiumకు సైన్ ఇన్ చేశారు. దయచేసి మళ్లీ సైన్ ఇన్ చేయడానికి ఇదే ఖాతాను ఉపయోగించండి.</translation>
-<translation id="7962572577636132072">Chromium ఆటోమేటిక్‌గా అప్‌డేట్ అవుతుంది కాబట్టి మీ వద్ద ఎప్పుడూ తాజా వెర్షన్ ఉంటుంది.</translation>
 <translation id="7975919845073681630">ఇది Chromium రెండవ ఇన‌స్ట‌లేష‌న్. దీన్ని మీ డిఫాల్ట్ బ్రౌజర్‌గా చేయడం సాధ్యపడదు.</translation>
 <translation id="7979877361127045932">Chromium మెనూలో దాచండి</translation>
 <translation id="8013436988911883588">ఓసారి Chromiumకి యాక్సెస్ లభించాక, ఆపై వెబ్‌సైట్‌లకు ఏమైనా యాక్సెస్‌ కావాలంటే అవి మిమ్మల్ని అడగవచ్చు.</translation>
diff --git a/chrome/app/resources/chromium_strings_th.xtb b/chrome/app/resources/chromium_strings_th.xtb
index 843994f2..0a60bd6 100644
--- a/chrome/app/resources/chromium_strings_th.xtb
+++ b/chrome/app/resources/chromium_strings_th.xtb
@@ -116,7 +116,6 @@
 <translation id="5416696090975899932">Chromium แสดงหน้าตัวอย่างก่อนพิมพ์ไม่ได้หากไม่มีโปรแกรมดู PDF ในตัว</translation>
 <translation id="5427571867875391349">ตั้ง Chromium เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium เบต้า</translation>
-<translation id="5466153949126434691">Chromium ทำการอัปเดตโดยอัตโนมัติเพื่อให้คุณมีเวอร์ชันใหม่ล่าสุดเสมอ เมื่อดาวน์โหลดเสร็จ Chromium จะรีสตาร์ท และคุณจะสามารถใช้งานได้ทันที</translation>
 <translation id="5479196819031988440">Chromium OS ไม่สามารถเปิดหน้านี้</translation>
 <translation id="5480860683791598150">Chromium ต้องการสิทธิ์เข้าถึงตำแหน่งของคุณเพื่อแชร์ตำแหน่งกับเว็บไซต์นี้</translation>
 <translation id="549669000822060376">โปรดรอขณะที่ Chromium ติดตั้งการอัปเดตระบบล่าสุด</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Chromium อัปเดตเป็นเวอร์ชันล่าสุดไม่ได้ คุณจึงไม่ได้รับฟีเจอร์ใหม่และการแก้ไขด้านความปลอดภัย</translation>
 <translation id="7901117350626490574">อัปเดตใหม่ของ Chromium พร้อมให้ใช้งานแล้วและระบบจะใช้อัปเดตดังกล่าวเมื่อคุณเปิด Chromium ขึ้นมาใหม่</translation>
 <translation id="7937630085815544518">คุณเคยลงชื่อเข้าใช้ Chromium ในชื่อ <ph name="USER_EMAIL_ADDRESS" /> โปรดใช้บัญชีเดิมเพื่อลงชื่อเข้าใช้อีกครั้ง</translation>
-<translation id="7962572577636132072">Chromium จะอัปเดตโดยอัตโนมัติเพื่อให้คุณได้ใช้เวอร์ชันใหม่ล่าสุดอยู่เสมอ</translation>
 <translation id="7975919845073681630">นี่เป็นการติดตั้ง Chromium แบบสำรอง และไม่สามารถใช้เป็นเบราว์เซอร์เริ่มต้นของคุณ</translation>
 <translation id="7979877361127045932">ซ่อนในเมนู Chromium</translation>
 <translation id="8013436988911883588">เมื่อ Chromium มีสิทธิ์การเข้าถึงแล้ว เว็บไซต์จะขอสิทธิ์การเข้าถึงจากคุณได้</translation>
diff --git a/chrome/app/resources/chromium_strings_tr.xtb b/chrome/app/resources/chromium_strings_tr.xtb
index acd8b42..17a3f1a 100644
--- a/chrome/app/resources/chromium_strings_tr.xtb
+++ b/chrome/app/resources/chromium_strings_tr.xtb
@@ -115,7 +115,6 @@
 <translation id="5416696090975899932">Chromium, dahili PDF görüntüleyici yokken baskı önizlemeyi gösteremez.</translation>
 <translation id="5427571867875391349">Chromium'u varsayılan tarayıcım olarak ayarla</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium Beta</translation>
-<translation id="5466153949126434691">Chromium otomatik olarak güncellenerek her zaman en yeni sürüme sahip olmanızı sağlar. Bu indirme işlemi tamamlandığında Chromium yeniden başlatılacak ve yolunuza devam edeceksiniz.</translation>
 <translation id="5479196819031988440">Chromium OS bu sayfayı açamıyor.</translation>
 <translation id="5480860683791598150">Konumunuzu bu siteyle paylaşabilmek için Chromium'un konum bilgilerinize erişmesi gerekiyor</translation>
 <translation id="549669000822060376">Chromium en son sistem güncellemelerini yüklerken lütfen bekleyin.</translation>
@@ -211,7 +210,6 @@
 <translation id="7867198900892795913">Chromium en son sürüme güncellenemediği için yeni özellikler ve güvenlik düzeltmeleri cihazınızda bulunmuyor.</translation>
 <translation id="7901117350626490574">Chromium için yeni bir güncelleme var. Yeniden başlattığınızda güncelleme hemen uygulanacaktır.</translation>
 <translation id="7937630085815544518">Chromium'da <ph name="USER_EMAIL_ADDRESS" /> olarak oturum açtınız. Tekrar oturum açmak için lütfen aynı hesabı kullanın.</translation>
-<translation id="7962572577636132072">Chromium otomatik olarak güncellenir, böylece her zaman en yeni sürüme sahip olursunuz.</translation>
 <translation id="7975919845073681630">Bu, Chromium'un ikincil bir yüklemesidir ve varsayılan tarayıcınız yapılamaz.</translation>
 <translation id="7979877361127045932">Chromium menüsünde gizle</translation>
 <translation id="8013436988911883588">Chromium erişim izni aldıktan sonra, web siteleri de erişim için sizden izin isteyebilecek.</translation>
diff --git a/chrome/app/resources/chromium_strings_uk.xtb b/chrome/app/resources/chromium_strings_uk.xtb
index e366cdb..d47784d4 100644
--- a/chrome/app/resources/chromium_strings_uk.xtb
+++ b/chrome/app/resources/chromium_strings_uk.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium не може відобразити попередній перегляд версії для друку, якщо немає вбудованого засобу для перегляду файлів PDF.</translation>
 <translation id="5427571867875391349">Зробити Chromium веб-переглядачем за умовчанням</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> – Бета-версія Chromium</translation>
-<translation id="5466153949126434691">Chromium оновлюється автоматично, щоб у вас завжди була найновіша версія. Щойно це завантаження завершиться, Chromium перезапуститься й ви зможете продовжувати роботу.</translation>
 <translation id="5479196819031988440">Неможливо відкрити цю сторінку в ОС Chromium.</translation>
 <translation id="5480860683791598150">Chromium потрібен доступ до геоданих, щоб повідомляти ваше місцезнаходження цьому сайту</translation>
 <translation id="549669000822060376">Зачекайте, доки Chromium установить найновіші оновлення системи.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Не вдалось оновити Chromium до останньої версії. Ви не зможете скористатися новими функціями та застосувати виправлення системи безпеки.</translation>
 <translation id="7901117350626490574">Доступне оновлення Chromium, його буде застосовано відразу після перезапуску.</translation>
 <translation id="7937630085815544518">Ви ввійшли в Chromium як <ph name="USER_EMAIL_ADDRESS" />. Скористайтеся тим самим обліковим записом, щоб увійти знову.</translation>
-<translation id="7962572577636132072">Chromium оновлюється автоматично, щоб у вас завжди була найновіша версія.</translation>
 <translation id="7975919845073681630">Це додаткове встановлення Chromium. Його не можна зробити вашим веб-переглядачем за умовчанням.</translation>
 <translation id="7979877361127045932">Сховати в меню Chromium</translation>
 <translation id="8013436988911883588">Коли Chromium отримає доступ, веб-сайти зможуть надсилати вам запити на доступ.</translation>
diff --git a/chrome/app/resources/chromium_strings_vi.xtb b/chrome/app/resources/chromium_strings_vi.xtb
index 8dc33ec8..891976d 100644
--- a/chrome/app/resources/chromium_strings_vi.xtb
+++ b/chrome/app/resources/chromium_strings_vi.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">Chromium không thể hiển thị chế độ xem trước bản in khi thiếu trình xem PDF tích hợp.</translation>
 <translation id="5427571867875391349">Đặt Chromium là trình duyệt mặc định của bạn</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium phiên bản beta</translation>
-<translation id="5466153949126434691">Chromium tự động cập nhật nên bạn luôn có phiên bản mới nhất. Khi quá trình tải xuống này hoàn tất, Chromium sẽ khởi động lại và bạn có thể tiếp tục sử dụng.</translation>
 <translation id="5479196819031988440">Chromium OS không thể mở trang này.</translation>
 <translation id="5480860683791598150">Chromium cần quyền truy cập vào vị trí của bạn để chia sẻ thông tin vị trí với trang web này</translation>
 <translation id="549669000822060376">Vui lòng đợi khi Chromium cài đặt các bản cập nhật hệ thống mới nhất.</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium không thể cập nhật lên phiên bản mới nhất nên bạn đang bỏ lỡ các tính năng và bản vá bảo mật mới.</translation>
 <translation id="7901117350626490574">Đã có bản cập nhật Chromium mới và bản cập nhật này sẽ áp dụng ngay khi bạn chạy lại.</translation>
 <translation id="7937630085815544518">Bạn đã đăng nhập vào Chromium là <ph name="USER_EMAIL_ADDRESS" />. Vui lòng sử dụng cùng tài khoản để đăng nhập lại.</translation>
-<translation id="7962572577636132072">Chromium tự động cập nhật nên bạn luôn có phiên bản mới nhất.</translation>
 <translation id="7975919845073681630">Đây là cài đặt thứ cấp của Chromium và không thể trở thành trình duyệt mặc định của bạn.</translation>
 <translation id="7979877361127045932">Ẩn trong menu Chromium</translation>
 <translation id="8013436988911883588">Sau khi Chromium có quyền truy cập, các trang web sẽ có thể yêu cầu bạn cấp quyền truy cập.</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-CN.xtb b/chrome/app/resources/chromium_strings_zh-CN.xtb
index 7a6e5c24d..85d9f70 100644
--- a/chrome/app/resources/chromium_strings_zh-CN.xtb
+++ b/chrome/app/resources/chromium_strings_zh-CN.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">在缺少内置 PDF 查看器的情况下,Chromium 无法显示打印预览。</translation>
 <translation id="5427571867875391349">将Chromium设为默认浏览器</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium 测试版</translation>
-<translation id="5466153949126434691">Chromium会自动更新,因此您使用的始终都是最新版本。更新内容下载完毕后,Chromium会重新启动,然后您就可以开始使用了。</translation>
 <translation id="5479196819031988440">Chromium 操作系统无法打开此网页。</translation>
 <translation id="5480860683791598150">Chromium 需要获得位置权限,才能将您的位置信息共享给此网站</translation>
 <translation id="549669000822060376">Chromium正在安装最新的系统更新,请稍候。</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium 无法更新至最新版本,因此您未能获得最新的功能和安全修复程序。</translation>
 <translation id="7901117350626490574">Chromium 有一项新的可用更新;一旦您重新启动,系统即会应用这项更新。</translation>
 <translation id="7937630085815544518">您之前登录 Chromium 时使用的帐号为 <ph name="USER_EMAIL_ADDRESS" />,请使用同一帐号再次登录。</translation>
-<translation id="7962572577636132072">Chromium会自动更新,因此您使用的始终都是最新版本。</translation>
 <translation id="7975919845073681630">这是 Chromium 的并行安装,您无法将此浏览器设为默认浏览器。</translation>
 <translation id="7979877361127045932">在 Chromium 菜单中隐藏</translation>
 <translation id="8013436988911883588">一旦 Chromium 获得了使用权限,网站便能请求您向其授予使用权限。</translation>
diff --git a/chrome/app/resources/chromium_strings_zh-TW.xtb b/chrome/app/resources/chromium_strings_zh-TW.xtb
index 39518d6..61cd04aa 100644
--- a/chrome/app/resources/chromium_strings_zh-TW.xtb
+++ b/chrome/app/resources/chromium_strings_zh-TW.xtb
@@ -117,7 +117,6 @@
 <translation id="5416696090975899932">缺乏內建的 PDF 檢視器時,Chromium 無法顯示列印預覽畫面。</translation>
 <translation id="5427571867875391349">將 Chromium 設為預設瀏覽器</translation>
 <translation id="5438241569118040789"><ph name="PAGE_TITLE" /> - Chromium 測試版</translation>
-<translation id="5466153949126434691">Chromium 會自動更新,隨時讓你使用最新版本。完成這項下載作業後,Chromium 會重新啟動,自動為你進行更新。</translation>
 <translation id="5479196819031988440">Chromium 作業系統無法開啟這個網頁。</translation>
 <translation id="5480860683791598150">Chromium 需要位置資訊存取權,才能與這個網站分享你的位置資訊</translation>
 <translation id="549669000822060376">請稍候,Chromium 正在安裝最新的系統更新。</translation>
@@ -167,7 +166,7 @@
 <translation id="6734080038664603509">更新 Chromium(&amp;C)</translation>
 <translation id="6734291798041940871">電腦上的所有使用者都已經安裝 Chromium 了。</translation>
 <translation id="6810143991807788455">只要回報目前的設定,就能助我們一臂之力,讓 Chromium 更臻完美</translation>
-<translation id="6847869444787758381">Chromium 會通知你密碼是否曾遭到盜用</translation>
+<translation id="6847869444787758381">Chromium 會通知你密碼是否曾遭外洩</translation>
 <translation id="6857782730669500492">Chromium - <ph name="PAGE_TITLE" /></translation>
 <translation id="6863361426438995919">Google Pay (已複製到 Chromium)</translation>
 <translation id="6868056391275687737">有其他 Chromium 瀏覽器正在執行中。如要更新,請關閉這些瀏覽器。</translation>
@@ -213,7 +212,6 @@
 <translation id="7867198900892795913">Chromium 無法更新至最新版本,因此你並未取得最新功能和安全性問題修正。</translation>
 <translation id="7901117350626490574">有可用的 Chromium 更新,只要重新啟動 Chromium 即可套用。</translation>
 <translation id="7937630085815544518">你使用了 <ph name="USER_EMAIL_ADDRESS" /> 的身分登入 Chromium,請使用相同帳戶重新登入。</translation>
-<translation id="7962572577636132072">Chromium 會自動更新,隨時讓你使用最新版本。</translation>
 <translation id="7975919845073681630">這是以並存形式安裝的次要 Chromium,無法設為您的預設瀏覽器。</translation>
 <translation id="7979877361127045932">在 Chromium 選單中隱藏</translation>
 <translation id="8013436988911883588">Chromium 取得存取權後,網站將可要求你授予存取權。</translation>
diff --git a/chrome/app/resources/generated_resources_am.xtb b/chrome/app/resources/generated_resources_am.xtb
index 0b9c578a..48faae03 100644
--- a/chrome/app/resources/generated_resources_am.xtb
+++ b/chrome/app/resources/generated_resources_am.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">እባክዎ ያጠረ ዩአርኤል ያስገቡ</translation>
 <translation id="2588636910004461974">የ<ph name="VENDOR_NAME" /> መሣሪያዎች</translation>
 <translation id="2594999711683503743">በGoogle ይፈልጉ ወይም ዩአርኤል ይተይቡ</translation>
-<translation id="2597521610396315071">ክትትልን ያክሉ</translation>
 <translation id="2603115962224169880">ኮምፒውተርን አጽዳ</translation>
 <translation id="2603463522847370204">በ&amp;ማንነትን የማያሳውቅ መስኮት ክፈት</translation>
 <translation id="2604255671529671813">የአውታረ መረብ ግንኙነት ስህተት</translation>
diff --git a/chrome/app/resources/generated_resources_ar.xtb b/chrome/app/resources/generated_resources_ar.xtb
index ba070a2..1b4d95d 100644
--- a/chrome/app/resources/generated_resources_ar.xtb
+++ b/chrome/app/resources/generated_resources_ar.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">‏يُرجى إدخال عنوان URL أقصر.</translation>
 <translation id="2588636910004461974">أجهزة من <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">‏البحث في Google أو كتابة عنوان URL</translation>
-<translation id="2597521610396315071">إضافة الإشراف</translation>
 <translation id="2603115962224169880">إزالة البرامج الضارة من جهاز الكمبيوتر</translation>
 <translation id="2603463522847370204">فتح في نافذة &amp;التصفح المتخفي</translation>
 <translation id="2604255671529671813">خطأ في اتصال الشبكة</translation>
diff --git a/chrome/app/resources/generated_resources_bg.xtb b/chrome/app/resources/generated_resources_bg.xtb
index 9dd5d6cf..f0d6cf2a 100644
--- a/chrome/app/resources/generated_resources_bg.xtb
+++ b/chrome/app/resources/generated_resources_bg.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">Моля, въведете по-кратък URL адрес</translation>
 <translation id="2588636910004461974">Устройства от <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Потърсете с Google или въведете URL адрес</translation>
-<translation id="2597521610396315071">Добавяне на контролиране</translation>
 <translation id="2603115962224169880">Почистване на компютъра</translation>
 <translation id="2603463522847370204">Отваряне на прозорец в режим „&amp;инкогнито“</translation>
 <translation id="2604255671529671813">Грешка при свързване с мрежата</translation>
diff --git a/chrome/app/resources/generated_resources_bn.xtb b/chrome/app/resources/generated_resources_bn.xtb
index 24dc20e6..f55812b 100644
--- a/chrome/app/resources/generated_resources_bn.xtb
+++ b/chrome/app/resources/generated_resources_bn.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">এর থেকে ছোট URL লিখুন</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" />-এর ডিভাইসের নাম</translation>
 <translation id="2594999711683503743">Google এ খুঁজুন বা URL টাইপ করুন</translation>
-<translation id="2597521610396315071">তত্ত্বাবধান যোগ করা</translation>
 <translation id="2603115962224169880">কম্পিউটার সাফ করুন</translation>
 <translation id="2603463522847370204">ছদ্মবেশী উইন্ডোতে খুলু&amp;ন</translation>
 <translation id="2604255671529671813">নেটওয়ার্ক সংযোগে সমস্যা</translation>
diff --git a/chrome/app/resources/generated_resources_ca.xtb b/chrome/app/resources/generated_resources_ca.xtb
index fa2ec972..d487aae 100644
--- a/chrome/app/resources/generated_resources_ca.xtb
+++ b/chrome/app/resources/generated_resources_ca.xtb
@@ -649,7 +649,7 @@
 <translation id="1926339101652878330">Aquesta configuració està controlada per una política d'empresa. Contacteu amb l'administrador per obtenir més informació.</translation>
 <translation id="1927632033341042996">Dit <ph name="NEW_FINGER_NUMBER" /></translation>
 <translation id="1928202201223835302">Introdueix el PIN antic</translation>
-<translation id="1929546189971853037">Llegir l'historial de navegació en tots els dispositius on hàgiu iniciar la sessió</translation>
+<translation id="1929546189971853037">Llegir l'historial de navegació en tots els dispositius en què tens la sessió iniciada</translation>
 <translation id="1931152874660185993">No hi ha cap component instal·lat.</translation>
 <translation id="1932026958134051332">Opcions d'Accés amb interruptors</translation>
 <translation id="1932098463447129402">No abans</translation>
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">Introdueix un URL més curt</translation>
 <translation id="2588636910004461974">Dispositius del proveïdor <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Fes una cerca a Google o escriu l'URL</translation>
-<translation id="2597521610396315071">Afegeix supervisió</translation>
 <translation id="2603115962224169880">Neteja l'ordinador</translation>
 <translation id="2603463522847370204">Obre-ho en una &amp;finestra d'incògnit</translation>
 <translation id="2604255671529671813">Error de connexió a la xarxa</translation>
@@ -4130,7 +4129,7 @@
 <translation id="7117228822971127758">Torna-ho a provar més tard</translation>
 <translation id="7117247127439884114">Torna a iniciar la sessió...</translation>
 <translation id="711840821796638741">Mostra les adreces d'interès gestionades</translation>
-<translation id="711902386174337313">Accedeix a la llista de dispositius en què s'ha iniciat la sessió</translation>
+<translation id="711902386174337313">Accedeix a la llista de dispositius en què tens la sessió iniciada</translation>
 <translation id="7120865473764644444">No s'ha pogut connectar amb el servidor de sincronització. S'està tornant a provar…</translation>
 <translation id="7121362699166175603">Esborra l'historial i les complecions automàtiques a la barra d'adreces. A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> trobaràs altres maneres d'explorar l'historial de navegació del Compte de Google.</translation>
 <translation id="7121389946694989825">Envia dades d'ús i de diagnòstic. En aquests moments aquest dispositiu envia automàticament a Google dades de diagnòstic, del dispositiu i d''ús d'aplicacions. Aquestes dades no es faran servir per identificar el teu fill i ajudaran a millorar l'estabilitat del sistema i de les aplicacions, entre altres característiques. Una part de les dades agregades també serà útil per a les aplicacions i els col·laboradors de Google, com ara els desenvolupadors d'Android. Si l'opció Activitat al web i en aplicacions addicional està activada per al teu fill, és possible que aquestes dades es desin al seu Compte de Google. <ph name="BEGIN_LINK1" />Més informació<ph name="END_LINK1" /></translation>
@@ -4566,7 +4565,7 @@
 <translation id="7780252971640011240">Hi ha problemes de connexió. Contacta amb l'operador per obtenir ajuda.</translation>
 <translation id="7781335840981796660">Se suprimiran tots els comptes d'usuari i totes les dades locals.</translation>
 <translation id="7782102568078991263">Cap suggeriment més de Google</translation>
-<translation id="7782717250816686129">Emmagatzema les dades permanents a la pàgina d'inici de sessió i introdueix les credencials per iniciar la sessió.</translation>
+<translation id="7782717250816686129">Emmagatzema les dades permanents a la pàgina d'inici de sessió i insereix les credencials per iniciar la sessió.</translation>
 <translation id="778330624322499012">No s'ha pogut carregar <ph name="PLUGIN_NAME" /></translation>
 <translation id="7784067724422331729">La configuració de seguretat del vostre ordinador ha bloquejat aquest fitxer.</translation>
 <translation id="7784796923038949829">No es poden llegir o canviar les dades del lloc web</translation>
@@ -4963,7 +4962,8 @@
 <translation id="8291967909914612644">País del proveïdor domèstic</translation>
 <translation id="8294431847097064396">Font</translation>
 <translation id="8297006494302853456">Feble</translation>
-<translation id="8299319456683969623">Actualment no teniu connexió.</translation>
+<translation id="8299319456683969623">En aquests moments no tens connexió.
+</translation>
 <translation id="8300011035382349091">Edita l'adreça d'interès d'aquesta pestanya</translation>
 <translation id="8300374739238450534">Blau nit</translation>
 <translation id="8300849813060516376">Error d'OTASP</translation>
@@ -5243,7 +5243,7 @@
 <translation id="8727154974495727220">Quan el dispositiu <ph name="DEVICE_TYPE" /> estigui configurat, prem el botó de l'Assistent o digues "Ok Google" per obtenir ajuda en qualsevol moment. Ves a la configuració de l'Assistent per fer-hi canvis.</translation>
 <translation id="8730621377337864115">Fet</translation>
 <translation id="8732030010853991079">Per fer servir aquesta extensió, feu clic en aquesta icona.</translation>
-<translation id="8732212173949624846">Llegir i canviar l'historial de navegació en tots els dispositius on s'hagi iniciat la sessió</translation>
+<translation id="8732212173949624846">Llegir i canviar l'historial de navegació en tots els dispositius en què tens la sessió iniciada</translation>
 <translation id="8732844209475700754">Més opcions de configuració relacionades amb la privadesa, la seguretat i la recollida de dades</translation>
 <translation id="8734073480934656039">Si s'activa aquesta configuració, les aplicacions de quiosc es podran iniciar automàticament en iniciar el dispositiu.</translation>
 <translation id="8734674662128056360">Bloqueig de galetes de tercers</translation>
diff --git a/chrome/app/resources/generated_resources_cs.xtb b/chrome/app/resources/generated_resources_cs.xtb
index 3a3eede..ff655859 100644
--- a/chrome/app/resources/generated_resources_cs.xtb
+++ b/chrome/app/resources/generated_resources_cs.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">Zadejte prosím kratší adresu URL</translation>
 <translation id="2588636910004461974">Zařízení od dodavatele <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Vyhledávejte na Googlu nebo zadejte adresu URL</translation>
-<translation id="2597521610396315071">Přidat dohled</translation>
 <translation id="2603115962224169880">Vyčištění počítače</translation>
 <translation id="2603463522847370204">Otevřít v &amp;anonymním okně</translation>
 <translation id="2604255671529671813">Chyba připojení k síti</translation>
diff --git a/chrome/app/resources/generated_resources_da.xtb b/chrome/app/resources/generated_resources_da.xtb
index 2ba7a902..5db99e6 100644
--- a/chrome/app/resources/generated_resources_da.xtb
+++ b/chrome/app/resources/generated_resources_da.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Angiv en kortere webadresse</translation>
 <translation id="2588636910004461974">Enheder fra <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Søg på Google, eller angiv webadressen</translation>
-<translation id="2597521610396315071">Tilføj overvågning</translation>
 <translation id="2603115962224169880">Ryd op på computeren</translation>
 <translation id="2603463522847370204">Åbn i &amp;inkognitovindue</translation>
 <translation id="2604255671529671813">Fejl i netværksforbindelsen</translation>
diff --git a/chrome/app/resources/generated_resources_de.xtb b/chrome/app/resources/generated_resources_de.xtb
index f5f79cb..1a7897c 100644
--- a/chrome/app/resources/generated_resources_de.xtb
+++ b/chrome/app/resources/generated_resources_de.xtb
@@ -1097,7 +1097,6 @@
 <translation id="2586672484245266891">Geben Sie eine kürzere URL ein</translation>
 <translation id="2588636910004461974">Geräte von <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Bei Google suchen oder URL eingeben</translation>
-<translation id="2597521610396315071">Elternaufsicht einrichten</translation>
 <translation id="2603115962224169880">Computer bereinigen</translation>
 <translation id="2603463522847370204">In &amp;Inkognito-Fenster öffnen</translation>
 <translation id="2604255671529671813">Fehler bei der Netzwerkverbindung</translation>
@@ -1878,7 +1877,7 @@
 <translation id="3748026146096797577">Nicht verbunden</translation>
 <translation id="3752582316358263300">Ok</translation>
 <translation id="3752673729237782832">Meine Geräte</translation>
-<translation id="3753033997400164841">Einmal speichern. Überall verwenden</translation>
+<translation id="3753033997400164841">Einmal speichern. Überall verwenden.</translation>
 <translation id="3755411799582650620">Sie können mit Ihrem <ph name="PHONE_NAME" /> jetzt Ihr <ph name="DEVICE_TYPE" /> entsperren.</translation>
 <translation id="375636864092143889">Die Website verwendet Ihr Mikrofon</translation>
 <translation id="3757733214359997190">Keine Websites gefunden</translation>
@@ -3001,7 +3000,7 @@
 <translation id="5457599981699367932">Als Gast nutzen</translation>
 <translation id="5457991019809708398">An, kein Roaming</translation>
 <translation id="5458998536542739734">Notizen auf Sperrbildschirm</translation>
-<translation id="546322474339998983">Wird vom Chrome-Browser und <ph name="DEVICE_TYPE" />-Launcher verwendet</translation>
+<translation id="546322474339998983">Wird vom Chrome-Browser und <ph name="DEVICE_TYPE" /> Launcher verwendet</translation>
 <translation id="5463231940765244860">Eingabe</translation>
 <translation id="5463275305984126951">Index von <ph name="LOCATION" /></translation>
 <translation id="5463856536939868464">Menü enthält ausgeblendete Lesezeichen</translation>
@@ -5276,7 +5275,7 @@
 <translation id="8774934320277480003">Oberer Rand</translation>
 <translation id="8775144690796719618">Ungültige URL</translation>
 <translation id="8777628254805677039">Root-Passwort</translation>
-<translation id="8780123805589053431">Bildbeschreibungen von Google abrufen</translation>
+<translation id="8780123805589053431">Bildbeschreibungen von Google verwenden</translation>
 <translation id="8780443667474968681">Die Sprachsuche wurde deaktiviert.</translation>
 <translation id="878069093594050299">Dieses Zertifikat wurde für folgende Verwendungszwecke verifiziert:</translation>
 <translation id="8781980678064919987">Beim Zuklappen herunterfahren</translation>
diff --git a/chrome/app/resources/generated_resources_el.xtb b/chrome/app/resources/generated_resources_el.xtb
index 1c5449a1..1cc664e3 100644
--- a/chrome/app/resources/generated_resources_el.xtb
+++ b/chrome/app/resources/generated_resources_el.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Εισαγάγετε μια πιο σύντομη διεύθυνση URL</translation>
 <translation id="2588636910004461974">Συσκευές από <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Κάντε αναζήτηση στο Google ή πληκτρολογήστε το URL</translation>
-<translation id="2597521610396315071">Προσθήκη επίβλεψης</translation>
 <translation id="2603115962224169880">Εκκαθάριση υπολογιστή</translation>
 <translation id="2603463522847370204">Άνοιγμα σε παράθυρο για ανών&amp;υμη περιήγηση</translation>
 <translation id="2604255671529671813">Σφάλμα σύνδεσης δικτύου</translation>
diff --git a/chrome/app/resources/generated_resources_en-GB.xtb b/chrome/app/resources/generated_resources_en-GB.xtb
index 65a7807..36fc933 100644
--- a/chrome/app/resources/generated_resources_en-GB.xtb
+++ b/chrome/app/resources/generated_resources_en-GB.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Please enter a shorter URL</translation>
 <translation id="2588636910004461974">Devices from <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Search Google or type URL</translation>
-<translation id="2597521610396315071">Add supervision</translation>
 <translation id="2603115962224169880">Clean up computer</translation>
 <translation id="2603463522847370204">Open in &amp;Incognito window</translation>
 <translation id="2604255671529671813">Network connection error</translation>
diff --git a/chrome/app/resources/generated_resources_es-419.xtb b/chrome/app/resources/generated_resources_es-419.xtb
index 685876a..1b4318e 100644
--- a/chrome/app/resources/generated_resources_es-419.xtb
+++ b/chrome/app/resources/generated_resources_es-419.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">Ingresa una URL más corta</translation>
 <translation id="2588636910004461974">Dispositivos del proveedor <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Buscar en Google o escribir una URL</translation>
-<translation id="2597521610396315071">Agregar supervisión</translation>
 <translation id="2603115962224169880">Limpiar la computadora</translation>
 <translation id="2603463522847370204">Abrir en una ventana de &amp;incógnito</translation>
 <translation id="2604255671529671813">Error de conexión de red</translation>
diff --git a/chrome/app/resources/generated_resources_es.xtb b/chrome/app/resources/generated_resources_es.xtb
index 6dc6f70..37f4e66 100644
--- a/chrome/app/resources/generated_resources_es.xtb
+++ b/chrome/app/resources/generated_resources_es.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Introduce una URL más corta</translation>
 <translation id="2588636910004461974">Dispositivos de <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Busca en Google o escribe una URL</translation>
-<translation id="2597521610396315071">Añadir supervisión</translation>
 <translation id="2603115962224169880">Limpiar ordenador</translation>
 <translation id="2603463522847370204">Abrir en una ventana de &amp;incógnito</translation>
 <translation id="2604255671529671813">No se ha podido establecer conexión con la red</translation>
@@ -5359,7 +5358,7 @@
 <translation id="8879284080359814990">&amp;Mostrar como pestaña</translation>
 <translation id="8879921471468674457">Recordar información de inicio de sesión</translation>
 <translation id="8881020143150461183">Vuelve a intentarlo. Si necesitas asistencia técnica, ponte en contacto con <ph name="CARRIER_NAME" />.</translation>
-<translation id="8884570509232205463">A partir de ahora, el dispositivo se bloqueará a las <ph name="UNLOCK_TIME" />.</translation>
+<translation id="8884570509232205463">Ahora, el dispositivo se bloqueará a las <ph name="UNLOCK_TIME" />.</translation>
 <translation id="8885197664446363138">Smart Lock no está disponible</translation>
 <translation id="8888253246822647887">La aplicación se abrirá cuando la actualización se haya completado. Las actualizaciones pueden tardar varios minutos.</translation>
 <translation id="8888432776533519951">Color:</translation>
diff --git a/chrome/app/resources/generated_resources_et.xtb b/chrome/app/resources/generated_resources_et.xtb
index 4267297..4628f3d 100644
--- a/chrome/app/resources/generated_resources_et.xtb
+++ b/chrome/app/resources/generated_resources_et.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Sisestage lühem URL</translation>
 <translation id="2588636910004461974">Seadmed teenusepakkujalt <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Otsige Google'ist või sisestage URL</translation>
-<translation id="2597521610396315071">Järelevalve lisamine</translation>
 <translation id="2603115962224169880">Puhasta arvuti</translation>
 <translation id="2603463522847370204">Ava &amp;inkognito aknas</translation>
 <translation id="2604255671529671813">Võrguühenduse viga</translation>
diff --git a/chrome/app/resources/generated_resources_fa.xtb b/chrome/app/resources/generated_resources_fa.xtb
index 1bbf54f..6f37fd4 100644
--- a/chrome/app/resources/generated_resources_fa.xtb
+++ b/chrome/app/resources/generated_resources_fa.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">لطفاً نشانی وب کوتاه‌تری وارد کنید</translation>
 <translation id="2588636910004461974">دستگاه‌های <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">‏در Google جستجو کنید یا نشانی وب را تایپ کنید</translation>
-<translation id="2597521610396315071">افزودن نظارت</translation>
 <translation id="2603115962224169880">پاک کردن رایانه</translation>
 <translation id="2603463522847370204">باز کردن در پنجره &amp;ناشناس</translation>
 <translation id="2604255671529671813">خطای اتصال شبکه</translation>
@@ -1578,7 +1577,7 @@
 <translation id="3317459757438853210">دو طرفه</translation>
 <translation id="3317678681329786349">دوربین و میکروفون مسدود شده‌اند</translation>
 <translation id="3319048459796106952">&amp;پنجره جدید حالت ناشناس</translation>
-<translation id="3323521181261657960">پاداش! مدت تماشای صفحه بیشتری دریافت کردید</translation>
+<translation id="3323521181261657960">پاداش! وقت تماشای صفحه بیشتر شد</translation>
 <translation id="3325910708063135066">‏در «تنظیمات برگزیده سیستم Mac»، دوربین و میکروفون خاموش‌اند</translation>
 <translation id="3328489342742826322">‏با بازیابی از داده‌های پشتیبان‌گیری‌شده، برنامه‌ها و داده‌های Linux موجود در پوشه فایل‌های Linux حذف خواهد شد.</translation>
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />) <ph name="LONGTZNAME" /> (<ph name="EXEMPLARCITY" />)</translation>
@@ -1791,7 +1790,7 @@
 <translation id="3630995161997703415">این سایت را به قفسه‌تان اضافه کنید تا هر زمان که بخواهید از آن استفاده کنید</translation>
 <translation id="3636096452488277381">سلام <ph name="USER_GIVEN_NAME" />، حالتان چطور است.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />٪ - <ph name="TIME" /> باقی مانده است</translation>
-<translation id="3637561406135221044">درحال اسکن کردن فایل‌های ازنظر وجود داده‌های حساس...</translation>
+<translation id="3637561406135221044">درحال اسکن کردن فایل‌ها، ازنظر وجود داده‌های حساس...</translation>
 <translation id="3637682276779847508">اگر نتوانید کلید باز کردن قفل پین صحیح را وارد کنید، سیم‌کارت برای همیشه غیرفعال می‌شود.</translation>
 <translation id="3640214691812501263">«<ph name="EXTENSION_NAME" />» برای «<ph name="USER_NAME" />» اضافه شود؟</translation>
 <translation id="3640613767643722554">به «دستیار» آموزش دهید صدایتان را تشخیص دهد</translation>
@@ -5499,7 +5498,7 @@
 <translation id="9076283476770535406">این سایت ممکن است شامل محتوای مخصوص بزرگسالان باشد</translation>
 <translation id="9076523132036239772">متأسفم، ایمیل و گذرواژه شما تأیید نشد. ابتدا به یک شبکه متصل شوید.</translation>
 <translation id="9084064520949870008">بازکردن به‌عنوان پنجره</translation>
-<translation id="9088234649737575428"><ph name="PLUGIN_NAME" /> توسط خط‌مشی شرکت مسدود شده است</translation>
+<translation id="9088234649737575428">خط‌مشی شرکت <ph name="PLUGIN_NAME" /> را مسدود کرده است</translation>
 <translation id="9088917181875854783">لطفاً تأیید کنید که این کلیدواژه در دستگاه "<ph name="DEVICE_NAME" />" نشان داده می‌شود:</translation>
 <translation id="9094033019050270033">به‌روزرسانی گذرواژه</translation>
 <translation id="9094038138851891550">نام کاربری نامعتبر است</translation>
diff --git a/chrome/app/resources/generated_resources_fi.xtb b/chrome/app/resources/generated_resources_fi.xtb
index d095cb9..131ae39 100644
--- a/chrome/app/resources/generated_resources_fi.xtb
+++ b/chrome/app/resources/generated_resources_fi.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Anna lyhyempi URL-osoite.</translation>
 <translation id="2588636910004461974">Laitteet: <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Hae Googlesta tai kirjoita URL-osoite</translation>
-<translation id="2597521610396315071">Valvonnan lisääminen</translation>
 <translation id="2603115962224169880">Puhdista tietokone</translation>
 <translation id="2603463522847370204">Avaa incognito-ikkunassa</translation>
 <translation id="2604255671529671813">Verkkoyhteysvirhe</translation>
@@ -3824,7 +3823,7 @@
 <translation id="6659213950629089752">Tämän sivun lähensi laajennus <ph name="NAME" /></translation>
 <translation id="6659594942844771486">Välilehti</translation>
 <translation id="6664237456442406323">Tietokoneesi on valitettavasti määritetty virheellisellä laitetunnuksella. Siksi Chrome-käyttöjärjestelmä ei voi asentaa uusimpia tietoturvapäivityksiä ja tietokoneesi <ph name="BEGIN_BOLD" />voi altistua hyökkäyksille<ph name="END_BOLD" />.</translation>
-<translation id="6664774537677393800">Jokin meni vikaan profiilisi avaamisessa. Kirjaudu ensin ulos ja sitten uudelleen sisään.</translation>
+<translation id="6664774537677393800">Jotain meni pieleen. profiilisi avaamisessa. Kirjaudu ensin ulos ja sitten uudelleen sisään.</translation>
 <translation id="6673391612973410118"><ph name="PRINTER_MAKE_OR_MODEL" /> (USB)</translation>
 <translation id="667517062706956822">Haluatko, että Google kääntää tämän sivun kielestä <ph name="SOURCE_LANGUAGE" /> kieleen <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="6675665718701918026">Osoitinlaite yhdistetty.</translation>
@@ -3905,7 +3904,7 @@
 <translation id="6792072150955115067"><ph name="APP_NAME" /> haluaa jakaa näyttösi sisällön kohteen <ph name="TARGET_NAME" /> kanssa. Valitse, mitä haluat jakaa.</translation>
 <translation id="6793604637258913070">Korosta tekstikursori, kun se on näkyvissä tai liikkuu.</translation>
 <translation id="6795884519221689054">Panda</translation>
-<translation id="6797493596609571643">Hups… Jokin meni vikaan.</translation>
+<translation id="6797493596609571643">Hups… Jotain meni pieleen..</translation>
 <translation id="6798578729981748444">Jos haluat suorittaa tuonnin loppuun, sulje kaikki Firefox-ikkunat.</translation>
 <translation id="6798780071646309401">caps lock päällä</translation>
 <translation id="6798954102094737107">Laajennus: <ph name="PLUGIN_NAME" /></translation>
@@ -4582,7 +4581,7 @@
 <translation id="7788668840732459509">Sijainti:</translation>
 <translation id="7789963078219276159">Aloitussivun taustakuvaksi on vaihdettu <ph name="CATEGORY" />.</translation>
 <translation id="7791543448312431591">Lisää</translation>
-<translation id="7792012425874949788">Jokin meni vikaan kirjautumisessa</translation>
+<translation id="7792012425874949788">Jotain meni pieleen. kirjautumisessa</translation>
 <translation id="7792388396321542707">Lopeta jakaminen</translation>
 <translation id="779308894558717334">Vaaleanvihreä</translation>
 <translation id="7793098747275782155">Tummansininen</translation>
@@ -5179,7 +5178,7 @@
 <translation id="8652400352452647993">Virhe: pakattu laajennus</translation>
 <translation id="8654151524613148204">Tiedosto on liian suuri käsiteltäväksi.</translation>
 <translation id="8655295600908251630">Kanava</translation>
-<translation id="8655319619291175901">Hups… Jokin meni vikaan.</translation>
+<translation id="8655319619291175901">Hups… Jotain meni pieleen..</translation>
 <translation id="8655972064210167941">Sisäänkirjautuminen epäonnistui, koska salasanasi vahvistaminen epäonnistui. Ota yhteyttä järjestelmänvalvojaan tai yritä uudelleen.</translation>
 <translation id="8656619792520327915">Lisää toinen Bluetooth-suojausavain</translation>
 <translation id="8656768832129462377">Älä tarkista</translation>
diff --git a/chrome/app/resources/generated_resources_fil.xtb b/chrome/app/resources/generated_resources_fil.xtb
index 8c794912..bb5e1aec 100644
--- a/chrome/app/resources/generated_resources_fil.xtb
+++ b/chrome/app/resources/generated_resources_fil.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">Na-lock ang security key dahil napakaraming beses nang nailagay ang maling PIN. Para i-unlock ito, alisin at ipasok ulit ito.</translation>
 <translation id="1137673463384776352">Buksan ang link sa <ph name="APP" /></translation>
 <translation id="1140351953533677694">I-access ang iyong mga Bluetooth at Serial device</translation>
+<translation id="114036956334641753">Audio at mga caption</translation>
 <translation id="1140610710803014750">Para mailagay ang iyong mga bookmark sa lahat ng device mo, mag-sign in at i-on ang sync.</translation>
 <translation id="1140746652461896221">I-block ang content sa anumang page na binibisita mo</translation>
 <translation id="1143142264369994168">Tagapaglagda ng Certificate</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">Mga kilalang network</translation>
 <translation id="123578888592755962">Puno na ang disk</translation>
 <translation id="1238191093934674082">Open VPN</translation>
+<translation id="1239594683407221485">I-explore ang content ng device sa app na Mga File.</translation>
 <translation id="124116460088058876">Higit pang wika</translation>
 <translation id="1241753985463165747">Basahin at baguhin ang lahat ng iyong data sa kasalukuyang website kapag na-invoke</translation>
 <translation id="1242633766021457174">Gustong i-reset ng <ph name="THIRD_PARTY_TOOL_NAME" /> ang iyong mga setting.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">Nadiskonekta ang Internet. Pakisuri ang iyong koneksyon sa internet at subukang muli.</translation>
 <translation id="1463112138205428654">Na-block ng Advanced na Proteksyon ang <ph name="FILE_NAME" />.</translation>
 <translation id="1464258312790801189">Ang Iyong Mga Account</translation>
+<translation id="1464781208867302907">Para sa mga kagustuhan sa device, pumunta sa Mga Setting.</translation>
 <translation id="1465176863081977902">K&amp;opyahin ang Address ng Audio</translation>
 <translation id="1465827627707997754">Hiwa ng pizza</translation>
 <translation id="1468571364034902819">Hindi magagamit ang profile na ito</translation>
@@ -744,6 +747,7 @@
 <translation id="2099686503067610784">Tanggalin ang certificate ng server na "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="2100273922101894616">Awtomatikong Mag-sign in</translation>
 <translation id="2101225219012730419">Bersyon:</translation>
+<translation id="2111670510994270194">Bagong tab sa kanan</translation>
 <translation id="21133533946938348">Pin Tab</translation>
 <translation id="2113479184312716848">Buksan ang &amp;File...</translation>
 <translation id="2113921862428609753">Access sa Impormasyon ng Awtoridad</translation>
@@ -1097,7 +1101,6 @@
 <translation id="2586672484245266891">Maglagay ng mas maikling URL</translation>
 <translation id="2588636910004461974">Mga device mula sa <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Hanapin sa Google o i-type ang URL</translation>
-<translation id="2597521610396315071">Magdagdag ng Patnubay</translation>
 <translation id="2603115962224169880">Linisin ang computer</translation>
 <translation id="2603463522847370204">Buksan sa &amp;incognito window</translation>
 <translation id="2604255671529671813">Error sa koneksyon ng network</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3630995161997703415">Idagdag ang site na ito sa iyong shelf upang magamit ito anumang oras</translation>
 <translation id="3636096452488277381">Kamusta, <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - <ph name="TIME" /> na lang ang natitira</translation>
+<translation id="3637561406135221044">Nagsa-scan ng mga file para sa sensitibong data...</translation>
 <translation id="3637682276779847508">Permanenteng madi-disable ang iyong SIM card kung hindi mo mailalagay ang tamang PIN Unlock Key.</translation>
 <translation id="3640214691812501263">Idagdag ang "<ph name="EXTENSION_NAME" />" para sa <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Turuan ang iyong Assistant na makilala ang boses mo</translation>
@@ -2228,6 +2232,7 @@
 <translation id="425573743389990240">Rate ng Pagdiskarga ng Baterya sa Watts (Ang ibig sabihin ng negatibong halaga ay nagcha-charge ang baterya)</translation>
 <translation id="4256316378292851214">I-sa&amp;ve ang Video Bilang...</translation>
 <translation id="4258348331913189841">Mga system ng file</translation>
+<translation id="4263223596040212967">Tingnan ang layout ng iyong keyboard at subukang muli.</translation>
 <translation id="4263757076580287579">Nakansela ang pagpaparehistro ng printer.</translation>
 <translation id="426564820080660648">Upang tumingin ng mga update, pakigamit ang Ethernet, Wi-Fi o mobile data.</translation>
 <translation id="4267953847983678297">Awtomatikong kumonekta sa cellular network</translation>
@@ -2323,6 +2328,7 @@
 <translation id="4416582610654027550">Mag-type ng valid na URL</translation>
 <translation id="4419409365248380979">Laging payagan ang <ph name="HOST" /> na magset ng cookies</translation>
 <translation id="4419610272958564173">Hindi Kilalang Device (Vendor: <ph name="VENDOR_ID" />, Produkto: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">Nagkakaproblema sa pagkonekta. Makipag-ugnayan sa <ph name="CARRIER_NAME" /> para sa tulong.</translation>
 <translation id="4421932782753506458">Mingming</translation>
 <translation id="4423376891418188461">I-restore ang Mga Setting</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, hinihiling sa iyo ng administrator mo na palitan ang iyong password.</translation>
@@ -2998,6 +3004,7 @@
 <translation id="5457599981699367932">Mag-browse bilang Bisita</translation>
 <translation id="5457991019809708398">Naka-on, hindi roaming</translation>
 <translation id="5458998536542739734">Mga tala sa lock screen</translation>
+<translation id="546322474339998983">Ginagamit ng Chrome browser at Launcher ng <ph name="DEVICE_TYPE" /></translation>
 <translation id="5463231940765244860">Ilagay</translation>
 <translation id="5463275305984126951">Index ng <ph name="LOCATION" /></translation>
 <translation id="5463856536939868464">Menu na naglalaman ng mga nakatagong bookmark</translation>
@@ -3295,6 +3302,7 @@
 <translation id="5869948122057593679">Isara ang Lahat ng Iyong Window</translation>
 <translation id="5870086504539785141">Isara ang menu ng accessibility</translation>
 <translation id="5870155679953074650">Mga hard fault</translation>
+<translation id="5876851302954717356">Bagong Tab sa Kanan</translation>
 <translation id="5877064549588274448">Binago ang channel. I-restart ang iyong device upang ilapat ang mga pagbabago.</translation>
 <translation id="5877584842898320529">Hindi available o hindi naka-install nang tama ang napiling printer. <ph name="BR" /> Suriin ang iyong printer o subukang pumili ng ibang printer.</translation>
 <translation id="5882919346125742463">Mga Kilalang Network</translation>
@@ -4493,6 +4501,7 @@
 <translation id="7685049629764448582">Memorya sa JavaScript</translation>
 <translation id="7685087414635069102">Kailangan ng PIN</translation>
 <translation id="7685301384041462804">Tiyaking pinagkakatiwalaan mo ang site na ito bago ka pumasok sa VR.</translation>
+<translation id="768549422429443215">Magdagdag ng mga wika o baguhin ang pagkakasunud-sunod ng listahan.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">Kumpirmahin ang bagong password</translation>
 <translation id="7690378713476594306">Pumili sa listahan</translation>
@@ -4554,6 +4563,7 @@
 <translation id="7773726648746946405">Storage ng session</translation>
 <translation id="7774365994322694683">Ibon</translation>
 <translation id="7776701556330691704">Walang nakitang boses</translation>
+<translation id="7780252971640011240">Nagkakaproblema sa pagkonekta. Makipag-ugnayan sa iyong carrier para sa tulong.</translation>
 <translation id="7781335840981796660">Aalisin ang lahat ng user account at lokal na data.</translation>
 <translation id="7782102568078991263">Wala nang mga suhestiyon mula sa Google</translation>
 <translation id="7782717250816686129">I-store ang mga persistent data sa screen sa pag-log in at ilagay ang mga kredensyal sa session.</translation>
diff --git a/chrome/app/resources/generated_resources_fr.xtb b/chrome/app/resources/generated_resources_fr.xtb
index ed18292..f1fd8af 100644
--- a/chrome/app/resources/generated_resources_fr.xtb
+++ b/chrome/app/resources/generated_resources_fr.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Veuillez saisir une URL plus courte</translation>
 <translation id="2588636910004461974">Appareils de <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Rechercher sur Google ou saisir une URL</translation>
-<translation id="2597521610396315071">Activer la supervision</translation>
 <translation id="2603115962224169880">Nettoyer l'ordinateur</translation>
 <translation id="2603463522847370204">Ouvrir dans une fenêtre de &amp;navigation privée</translation>
 <translation id="2604255671529671813">Erreur de connexion réseau</translation>
diff --git a/chrome/app/resources/generated_resources_gu.xtb b/chrome/app/resources/generated_resources_gu.xtb
index c41649a..9837c4f 100644
--- a/chrome/app/resources/generated_resources_gu.xtb
+++ b/chrome/app/resources/generated_resources_gu.xtb
@@ -1097,7 +1097,6 @@
 <translation id="2586672484245266891">કૃપા કરીને ટૂંકુ URL દાખલ કરો</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> પાસે ઉપલબ્ધ ડિવાઇસની શ્રેણી</translation>
 <translation id="2594999711683503743">Googleમાં શોધો અથવા URL ટાઇપ કરો</translation>
-<translation id="2597521610396315071">નિરીક્ષણ ઉમેરો</translation>
 <translation id="2603115962224169880">કમ્પ્યુટર સાફ કરો</translation>
 <translation id="2603463522847370204">&amp;છુપી વિંડોમાં ખોલો</translation>
 <translation id="2604255671529671813">નેટવર્ક કનેક્શનમાં ભૂલ</translation>
diff --git a/chrome/app/resources/generated_resources_hi.xtb b/chrome/app/resources/generated_resources_hi.xtb
index c8668c9..f9f8497 100644
--- a/chrome/app/resources/generated_resources_hi.xtb
+++ b/chrome/app/resources/generated_resources_hi.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">सुरक्षा कुंजी लॉक कर दी गई है क्योंकि गलत पिन कई बार डाला गया है. सुरक्षा कुंजी को अनलॉक करने के लिए, इसे हटाएं और फिर से लगाएं.</translation>
 <translation id="1137673463384776352"><ph name="APP" /> में लिंक खोलें</translation>
 <translation id="1140351953533677694">अपने ब्लूटूथ और Serial डिवाइस एक्सेस करें</translation>
+<translation id="114036956334641753">ऑडियो और कैप्शन</translation>
 <translation id="1140610710803014750">अपने सभी डिवाइस पर अपने बुकमार्क पाने के लिए साइन इन करें और सिंक चालू करें.</translation>
 <translation id="1140746652461896221">किसी भी पेज पर आपकी देखी गई सामग्री पर रोक लगाएं</translation>
 <translation id="1143142264369994168">प्रमाणपत्र हस्ताक्षरकर्ता</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">ज्ञात नेटवर्क</translation>
 <translation id="123578888592755962">डिस्‍क भरी हुई है</translation>
 <translation id="1238191093934674082">खुला VPN</translation>
+<translation id="1239594683407221485">Files ऐप्लिकेशन में डिवाइस की सामग्री देखें.</translation>
 <translation id="124116460088058876">ज़्यादा भाषाएं</translation>
 <translation id="1241753985463165747">लागू किए जाने पर अभी वाली वेबसाइट पर मौजूद अपना सभी डेटा पढ़ें और बदलें</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> आपकी सेटिंग को रीसेट करना चाहता है.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">इंटरनेट डिस्‍कनेक्‍ट हो गया है. कृपया अपना इंटरनेट कनेक्‍शन जाँचें और फिर से कोशिश करें.</translation>
 <translation id="1463112138205428654">'बेहतर सुरक्षा' की मदद से <ph name="FILE_NAME" /> पर रोक लगाई गई थी.</translation>
 <translation id="1464258312790801189">आपके खाते</translation>
+<translation id="1464781208867302907">डिवाइस प्राथमिकताओं के लिए, सेटिंग पेज पर जाएं.</translation>
 <translation id="1465176863081977902">ऑडियो के पते को कॉ&amp;पी करें</translation>
 <translation id="1465827627707997754">पिज़्ज़ा का टुकड़ा</translation>
 <translation id="1468571364034902819">इस प्रोफ़ाइल का इस्तेमाल नहीं कर सकते</translation>
@@ -744,6 +747,7 @@
 <translation id="2099686503067610784">सर्वर प्रमाणपत्र "<ph name="CERTIFICATE_NAME" />" मिटाएं?</translation>
 <translation id="2100273922101894616">अपने आप साइन इन करने की सुविधा</translation>
 <translation id="2101225219012730419">वर्शन:</translation>
+<translation id="2111670510994270194">नए टैब के लिए दाईं ओर</translation>
 <translation id="21133533946938348">टैब छोटा करें</translation>
 <translation id="2113479184312716848">&amp;फ़ाइल खोलें...</translation>
 <translation id="2113921862428609753">अथॉरिटी इनफार्मेशन एक्सेस</translation>
@@ -1097,7 +1101,6 @@
 <translation id="2586672484245266891">कृपया थोड़ा छोटा यूआरएल लिखें</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> की ओर से डिवाइस</translation>
 <translation id="2594999711683503743">Google पर खोजें या URL टाइप करें</translation>
-<translation id="2597521610396315071">निगरानी जोड़ें</translation>
 <translation id="2603115962224169880">कंप्यूटर साफ़ करें</translation>
 <translation id="2603463522847370204">&amp;गुप्त विंडो में खोलें</translation>
 <translation id="2604255671529671813">नेटवर्क कनेक्शन गड़बड़ी</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3630995161997703415">इस साइट को अपनी अलमारी में जोड़ें ताकि आप किसी भी समय इसका उपयोग कर सकें</translation>
 <translation id="3636096452488277381">कैसे हैं, <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - <ph name="TIME" /> बाकी</translation>
+<translation id="3637561406135221044">संवेदनशील जानकारी के लिए फ़ाइलें स्कैन की जा रही हैं...</translation>
 <translation id="3637682276779847508">अगर आप सही पिन अनलॉक कुंजी नहीं डाल पाते हैं तो आपका SIM कार्ड हमेशा के लिए अक्षम कर दिया जाएगा.</translation>
 <translation id="3640214691812501263"><ph name="USER_NAME" /> के लिए "<ph name="EXTENSION_NAME" />" को जोड़ें?</translation>
 <translation id="3640613767643722554">अपनी Assistant को आपकी आवाज़ पहचानना सिखाएं</translation>
@@ -2227,6 +2231,7 @@
 <translation id="425573743389990240">बैटरी डिस्चार्ज दर वॉट में (ऋणात्मक मान का अर्थ है कि बैटरी चार्ज हो रही है)</translation>
 <translation id="4256316378292851214">इस रूप में वीडियो स&amp;हेजें...</translation>
 <translation id="4258348331913189841">फ़ाइल सिस्टम</translation>
+<translation id="4263223596040212967">अपना कीबोर्ड लेआउट जांचें और फिर से कोशिश करें.</translation>
 <translation id="4263757076580287579">प्रिंटर पंजीकरण को रद्द कर दिया गया है.</translation>
 <translation id="426564820080660648">अपडेट की जाँच करने के लिए, कृपया Ethernet या वाई-फ़ाई का उपयोग करें.</translation>
 <translation id="4267953847983678297">माेबाइल नेटवर्क से अपने आप कनेक्ट करें</translation>
@@ -2322,6 +2327,7 @@
 <translation id="4416582610654027550">एक मान्य यूआरएल टाइप करें</translation>
 <translation id="4419409365248380979"><ph name="HOST" /> को हमेशा कुकी सेट करने की अनुमति दें</translation>
 <translation id="4419610272958564173">अज्ञात डिवाइस (विक्रेता: <ph name="VENDOR_ID" />, उत्पाद: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">कनेक्ट करने में समस्या है. कृपया सहायता के लिए अपनी <ph name="CARRIER_NAME" /> से संपर्क करें.</translation>
 <translation id="4421932782753506458">फ्लफ़ी</translation>
 <translation id="4423376891418188461">सेटिंग फिर से स्थापित करें</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, आपके व्यवस्थापक के लिए ज़रूरी है कि आप अपना पासवर्ड बदलें.</translation>
@@ -2997,6 +3003,7 @@
 <translation id="5457599981699367932">मेहमान के रूप में ब्राउज़ करें</translation>
 <translation id="5457991019809708398">चालू है, रोमिंग में नहीं है</translation>
 <translation id="5458998536542739734">लॉक स्क्रीन नोट</translation>
+<translation id="546322474339998983">Chrome ब्राउज़र और <ph name="DEVICE_TYPE" /> लॉन्चर इसका इस्तेमाल करते हैं</translation>
 <translation id="5463231940765244860">डालें</translation>
 <translation id="5463275305984126951"><ph name="LOCATION" /> का इंडेक्स</translation>
 <translation id="5463856536939868464">मेन्यू में बुकमार्क छुपे हुए हैं</translation>
@@ -3294,6 +3301,7 @@
 <translation id="5869948122057593679">'अपनी सभी विंडो बंद करें'</translation>
 <translation id="5870086504539785141">सुलभता मेन्यू बंद करें</translation>
 <translation id="5870155679953074650">हार्ड फ़ॉल्ट</translation>
+<translation id="5876851302954717356">नए टैब के लिए दाईं ओर</translation>
 <translation id="5877064549588274448">चैनल बदल दिया गया है. बदलावों का लागू करने के लिए अपने डिवाइस को फिर से प्रारंभ करें.</translation>
 <translation id="5877584842898320529">चुना गया प्रिंटर उपलब्ध नहीं है या ठीक से इंस्टॉल नहीं किया गया है. <ph name="BR" /> अपना प्रिंटर जाँचें या कोई दूसरा प्रिंटर चुनकर देखें.</translation>
 <translation id="5882919346125742463">ज्ञात नेटवर्क</translation>
@@ -4492,6 +4500,7 @@
 <translation id="7685049629764448582">JavaScript मेमोरी</translation>
 <translation id="7685087414635069102">पिन की ज़रूरत है</translation>
 <translation id="7685301384041462804">वीआर इस्तेमाल करने से पहले पक्का कर लें कि आप इस साइट पर भरोसा करते हैं.</translation>
+<translation id="768549422429443215">भाषाएं जोड़ें या सूची का क्रम बदलें.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">नए पासवर्ड की पुष्टि करें</translation>
 <translation id="7690378713476594306">सूची में से चुनें</translation>
@@ -4553,6 +4562,7 @@
 <translation id="7773726648746946405">सत्र संग्ररण</translation>
 <translation id="7774365994322694683">पक्षी</translation>
 <translation id="7776701556330691704">कोई आवाज़ नहीं मिली</translation>
+<translation id="7780252971640011240">कनेक्ट करने में समस्या है. कृपया सहायता के लिए अपनी मोबाइल और इंटरनेट सेवा देने वाली कंपनी से संपर्क करें.</translation>
 <translation id="7781335840981796660">सभी 'उपयोगकर्ता खातों' और 'स्थानीय डेटा' को हटा दिया जाएगा.</translation>
 <translation id="7782102568078991263">Google की ओर से कोई और सुझाव नहीं</translation>
 <translation id="7782717250816686129">लॉगिन स्क्रीन पर लगातार दिख रहे डेटा को स्टोर करें और सेशन में क्रेडेंशियल डालें.</translation>
diff --git a/chrome/app/resources/generated_resources_hr.xtb b/chrome/app/resources/generated_resources_hr.xtb
index 4d76794..284d39c8 100644
--- a/chrome/app/resources/generated_resources_hr.xtb
+++ b/chrome/app/resources/generated_resources_hr.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Unesite kraći URL</translation>
 <translation id="2588636910004461974">Uređaji dobavljača <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Pretražite na Googleu ili unesite URL</translation>
-<translation id="2597521610396315071">Dodavanje nadzora</translation>
 <translation id="2603115962224169880">Očistite računalo</translation>
 <translation id="2603463522847370204">Otvaranje u &amp;anonimnom prozoru</translation>
 <translation id="2604255671529671813">Pogreška mrežne veze</translation>
diff --git a/chrome/app/resources/generated_resources_hu.xtb b/chrome/app/resources/generated_resources_hu.xtb
index b6c3cd8..3545a2b6 100644
--- a/chrome/app/resources/generated_resources_hu.xtb
+++ b/chrome/app/resources/generated_resources_hu.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Rövidebb URL-t adjon meg</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> gyártótól származó eszközök</translation>
 <translation id="2594999711683503743">Keressen a Google-lal, vagy írja be az URL-t</translation>
-<translation id="2597521610396315071">Felügyelet beállítása</translation>
 <translation id="2603115962224169880">A számítógép megtisztítása</translation>
 <translation id="2603463522847370204">Megnyitás &amp;inkognitóablakban</translation>
 <translation id="2604255671529671813">Hálózati kapcsolati hiba</translation>
diff --git a/chrome/app/resources/generated_resources_id.xtb b/chrome/app/resources/generated_resources_id.xtb
index bc86b2a..492dbf4 100644
--- a/chrome/app/resources/generated_resources_id.xtb
+++ b/chrome/app/resources/generated_resources_id.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Masukkan URL yang lebih pendek</translation>
 <translation id="2588636910004461974">Perangkat dari <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Telusuri di Google atau ketik URL</translation>
-<translation id="2597521610396315071">Menambahkan Pengawasan</translation>
 <translation id="2603115962224169880">Bersihkan komputer</translation>
 <translation id="2603463522847370204">Buka di &amp;jendela samaran</translation>
 <translation id="2604255671529671813">Error koneksi jaringan</translation>
diff --git a/chrome/app/resources/generated_resources_it.xtb b/chrome/app/resources/generated_resources_it.xtb
index 2835d0d..ba76a68 100644
--- a/chrome/app/resources/generated_resources_it.xtb
+++ b/chrome/app/resources/generated_resources_it.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">Inserisci un URL più breve</translation>
 <translation id="2588636910004461974">Dispositivi di <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Cerca su Google o digita un URL</translation>
-<translation id="2597521610396315071">Aggiungi supervisione</translation>
 <translation id="2603115962224169880">Pulisci il computer</translation>
 <translation id="2603463522847370204">Apri in finestra di navigazione in &amp;incognito</translation>
 <translation id="2604255671529671813">Errore di connessione alla rete</translation>
diff --git a/chrome/app/resources/generated_resources_iw.xtb b/chrome/app/resources/generated_resources_iw.xtb
index cb7dba1b..df69bba 100644
--- a/chrome/app/resources/generated_resources_iw.xtb
+++ b/chrome/app/resources/generated_resources_iw.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">מפתח האבטחה נעול כי הזנת קוד אימות שגוי יותר מדי פעמים. כדי לבטל את הנעילה צריך לנתק ולחבר אותו מחדש.</translation>
 <translation id="1137673463384776352">פתח את הקישור ב-<ph name="APP" /></translation>
 <translation id="1140351953533677694">‏גישה ל-Bluetooth ולהתקנים סיריאליים</translation>
+<translation id="114036956334641753">אודיו וכתוביות</translation>
 <translation id="1140610710803014750">כדי לקבל גישה אל הסימניות שלך בכל המכשירים יש להיכנס ולבצע סינכרון.</translation>
 <translation id="1140746652461896221">חסימת תוכן בכל דף שאליו נכנסת</translation>
 <translation id="1143142264369994168">חותם על אישור </translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">רשתות מוכרות</translation>
 <translation id="123578888592755962">הדיסק מלא</translation>
 <translation id="1238191093934674082">‏VPN פתוח</translation>
+<translation id="1239594683407221485">באפליקציה 'קבצים' אפשר לעיין בתוכן של המכשיר.</translation>
 <translation id="124116460088058876">שפות נוספות</translation>
 <translation id="1241753985463165747">קרא ושנה את כל הנתונים שלך באתר הנוכחי בעת הקריאה</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> רוצה לאפס את ההגדרות שלך.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">האינטרנט מנותק. בדוק את חיבור האינטרנט שלך ונסה שוב.</translation>
 <translation id="1463112138205428654"><ph name="FILE_NAME" /> נחסם על-ידי ההגנה המתקדמת.</translation>
 <translation id="1464258312790801189">החשבונות שלך</translation>
+<translation id="1464781208867302907">דרך ההגדרות אפשר לגשת להעדפות המכשיר.</translation>
 <translation id="1465176863081977902">העתק כתובת &amp;אודיו</translation>
 <translation id="1465827627707997754">משולש פיצה</translation>
 <translation id="1468571364034902819">לא ניתן להשתמש בפרופיל הזה</translation>
@@ -741,6 +744,7 @@
 <translation id="2099686503067610784">למחוק את אישור השרת "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="2100273922101894616">כניסה אוטומטית</translation>
 <translation id="2101225219012730419">גרסה:</translation>
+<translation id="2111670510994270194">כרטיסייה חדשה מצד ימין</translation>
 <translation id="21133533946938348">הצמד כרטיסייה</translation>
 <translation id="2113479184312716848">פתח &amp;קובץ...</translation>
 <translation id="2113921862428609753">גישה לפרטי רשות</translation>
@@ -1094,7 +1098,6 @@
 <translation id="2586672484245266891">יש להזין כתובת אתר קצרה יותר</translation>
 <translation id="2588636910004461974">מכשירים של <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">זה המקום לחפש את מה שמעניין או להקליד כתובת של אתר ספציפי</translation>
-<translation id="2597521610396315071">הוספת פיקוח</translation>
 <translation id="2603115962224169880">ניקוי המחשב</translation>
 <translation id="2603463522847370204">פתח בחלון &amp;גלישה בסתר</translation>
 <translation id="2604255671529671813">שגיאת חיבור רשת</translation>
@@ -1787,6 +1790,7 @@
 <translation id="3630995161997703415">כדי שניתן יהיה תמיד להשתמש באתר הזה יש להוסיף אותו למדף</translation>
 <translation id="3636096452488277381">אהלן, <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684">‏‎‎‎%‎‏‎‎‏‎‏‎<ph name="PERCENTAGE" />‌ - נותרו <ph name="TIME" /></translation>
+<translation id="3637561406135221044">המערכת סורקת את הקבצים לאיתור מידע אישי רגיש...</translation>
 <translation id="3637682276779847508">‏כרטיס ה-SIM שלך יושבת לצמיתות אם לא תזין את המפתח הנכון לביטול נעילת ה-PIN.</translation>
 <translation id="3640214691812501263">האם להוסיף את "<ph name="EXTENSION_NAME" />" בשביל <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">‏ה-Assistant יכול ללמוד לזהות את הקול שלך</translation>
@@ -2225,6 +2229,7 @@
 <translation id="425573743389990240">שיעור פריקת סוללה בוואט (המשמעות של ערך שלילי היא שהסוללה בטעינה)</translation>
 <translation id="4256316378292851214">שמו&amp;ר סרטון וידאו כ...</translation>
 <translation id="4258348331913189841">מערכות קבצים</translation>
+<translation id="4263223596040212967">כדאי לבדוק את פריסת המקלדת ולנסות שוב.</translation>
 <translation id="4263757076580287579">רישום המדפסת בוטל.</translation>
 <translation id="426564820080660648">‏כדי לבדוק אם יש עדכונים, השתמש ב-Ethernet, ב-Wi-Fi או בנתונים לנייד.</translation>
 <translation id="4267953847983678297">התחברות אוטומטית אל רשת סלולרית</translation>
@@ -2320,6 +2325,7 @@
 <translation id="4416582610654027550">יש להקליד כתובת אתר חוקית</translation>
 <translation id="4419409365248380979">‏אפשר תמיד ל-<ph name="HOST" /> להגדיר קובצי Cookie</translation>
 <translation id="4419610272958564173">מכשיר לא ידוע (ספק: <ph name="VENDOR_ID" />, מוצר: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">בעיות בהתחברות? יש לפנות אל <ph name="CARRIER_NAME" /> לקבלת עזרה.</translation>
 <translation id="4421932782753506458">לקיק</translation>
 <translation id="4423376891418188461">שחזר הגדרות</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, מנהל המערכת מבקש ממך לשנות את הסיסמה שלך.</translation>
@@ -2995,6 +3001,7 @@
 <translation id="5457599981699367932">גלוש כאורח</translation>
 <translation id="5457991019809708398">פועל, ללא נדידה</translation>
 <translation id="5458998536542739734">הערות במסך הנעילה</translation>
+<translation id="546322474339998983">‏בשימוש על ידי דפדפן Chrome ומרכז האפליקציות של <ph name="DEVICE_TYPE" /></translation>
 <translation id="5463231940765244860">הזנת הקוד</translation>
 <translation id="5463275305984126951">אינדקס של <ph name="LOCATION" /></translation>
 <translation id="5463856536939868464">התפריט מכיל סימניות נסתרות</translation>
@@ -3292,6 +3299,7 @@
 <translation id="5869948122057593679">סגירת כל החלונות</translation>
 <translation id="5870086504539785141">סגור את תפריט הנגישות</translation>
 <translation id="5870155679953074650">שגיאות חמורות</translation>
+<translation id="5876851302954717356">כרטיסייה חדשה מצד ימין</translation>
 <translation id="5877064549588274448">הערוץ שונה. הפעל מחדש את המכשיר להחלת השינויים.</translation>
 <translation id="5877584842898320529">המדפסת שבחרת אינה זמינה או שאינה מותקנת כראוי. <ph name="BR" /> יש לבדוק את המדפסת או לנסות לבחור מדפסת אחרת.</translation>
 <translation id="5882919346125742463">רשתות מוכרות</translation>
@@ -4490,6 +4498,7 @@
 <translation id="7685049629764448582">‏זיכרון JavaScript</translation>
 <translation id="7685087414635069102">נדרש קוד אימות</translation>
 <translation id="7685301384041462804">‏חשוב לוודא שהאתר מהימן לפני תחילת השימוש ב-VR.</translation>
+<translation id="768549422429443215">הוספת שפות או שינוי סדר הרשימה.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">אישור הסיסמה החדשה</translation>
 <translation id="7690378713476594306">בחירה מתוך רשימה</translation>
@@ -4551,6 +4560,7 @@
 <translation id="7773726648746946405">אחסון הפעלה</translation>
 <translation id="7774365994322694683">ציפור</translation>
 <translation id="7776701556330691704">לא נמצאו קולות</translation>
+<translation id="7780252971640011240">בעיות בהתחברות? יש לפנות לספק לקבלת עזרה.</translation>
 <translation id="7781335840981796660">תתבצע הסרה של כל חשבונות המשתמש והנתונים השמורים במכשיר.</translation>
 <translation id="7782102568078991263">‏אין יותר הצעות מ-Google</translation>
 <translation id="7782717250816686129">אחסון נתונים קבועים במסך ההתחברות והזנה אוטומטית של פרטי הכניסה בסשן.</translation>
diff --git a/chrome/app/resources/generated_resources_ja.xtb b/chrome/app/resources/generated_resources_ja.xtb
index 40650da..df70aa8 100644
--- a/chrome/app/resources/generated_resources_ja.xtb
+++ b/chrome/app/resources/generated_resources_ja.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">URL を短くしてください</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> のデバイス</translation>
 <translation id="2594999711683503743">Google で検索、または URL を入力</translation>
-<translation id="2597521610396315071">管理機能を設定する</translation>
 <translation id="2603115962224169880">パソコンのクリーンアップ</translation>
 <translation id="2603463522847370204">シークレット ウィンドウで開く(&amp;I)</translation>
 <translation id="2604255671529671813">ネットワーク接続エラー</translation>
@@ -1581,7 +1580,7 @@
 <translation id="3317459757438853210">両面印刷</translation>
 <translation id="3317678681329786349">カメラとマイクがブロックされています</translation>
 <translation id="3319048459796106952">シークレット ウィンドウを開く(&amp;I)</translation>
-<translation id="3323521181261657960">ボーナス利用時間が増えました</translation>
+<translation id="3323521181261657960">ボーナスタイムが加算されました</translation>
 <translation id="3325910708063135066">Mac のシステム環境設定でカメラとマイクがオフになっています</translation>
 <translation id="3328489342742826322">バックアップから復元すると、Linux ファイル フォルダの既存の Linux アプリケーションとデータは削除されます。</translation>
 <translation id="3331321258768829690">(<ph name="UTCOFFSET" />)<ph name="LONGTZNAME" />(<ph name="EXEMPLARCITY" />)</translation>
@@ -2934,7 +2933,7 @@
 <translation id="5360150013186312835">ツールバーに表示</translation>
 <translation id="5362741141255528695">秘密鍵ファイルを選択します。</translation>
 <translation id="5363109466694494651">Powerwash を実行して以前のバージョンに戻す</translation>
-<translation id="5365716706805792666">Google ではお使いのパスワードがデータ侵害の対象になっていたかを確認できます。これは Google アカウントでログインするとオンになります。</translation>
+<translation id="5365716706805792666">Google ではお使いのパスワードがデータ侵害の対象になっていたかを確認できます。この機能は、Google アカウントでログインするとオンになります。</translation>
 <translation id="5365881113273618889">選択したフォルダには、機密ファイルが含まれています。このフォルダに対する永続的な書き込みアクセス権を「<ph name="APP_NAME" />」に付与してもよろしいですか?</translation>
 <translation id="5367091008316207019">ファイルを読み取っています...</translation>
 <translation id="5368720394188453070">スマートフォンがロックされています。ログインするにはロックを解除してしてください。</translation>
@@ -5356,7 +5355,7 @@
 <translation id="8874184842967597500">未接続</translation>
 <translation id="8876307312329369159">この設定はデモセッションでは変更できません。</translation>
 <translation id="8877448029301136595">[親ディレクトリ]</translation>
-<translation id="8879220587046205278">Google Play のアプリで外部ストレージ デバイスのファイルの読み取りと書き込みを行うには、ファイル システムへのフルアクセスが必要となる場合があります。デバイスで作成したファイルとフォルダは、外部ドライブを使用すれば誰でも閲覧できます。</translation>
+<translation id="8879220587046205278">Google Play のアプリで外部ストレージ デバイスのファイルの読み取りと書き込みを行うには、ファイル システムへのフルアクセスが必要となる場合があります。デバイス上に作成されたファイルとフォルダは、外部ドライブを使用する全員に表示されます。</translation>
 <translation id="8879284080359814990">タブで表示(&amp;S)</translation>
 <translation id="8879921471468674457">ログイン情報を保存する</translation>
 <translation id="8881020143150461183">もう一度お試しください。技術的なサポートについては、<ph name="CARRIER_NAME" /> にお問い合わせください。</translation>
diff --git a/chrome/app/resources/generated_resources_kn.xtb b/chrome/app/resources/generated_resources_kn.xtb
index 93b4647..dc99dbf 100644
--- a/chrome/app/resources/generated_resources_kn.xtb
+++ b/chrome/app/resources/generated_resources_kn.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">ತಪ್ಪಾದ ಪಿನ್ ಸಂಖ್ಯೆಯನ್ನು ಹಲವಾರು ಬಾರಿ ನಮೂದಿಸಿರುವ ಕಾರಣದಿಂದಾಗಿ, ಭದ್ರತೆ ಕೀ ಅನ್ನು ಲಾಕ್ ಮಾಡಲಾಗಿದೆ. ಅನ್‌ಲಾಕ್ ಮಾಡಲು, ಅದನ್ನು ತೆಗೆದು ಮರುಸೇರ್ಪಡಿಸಿ.</translation>
 <translation id="1137673463384776352">ಲಿಂಕ್‌ ಅನ್ನು <ph name="APP" /> ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="1140351953533677694">ನಿಮ್ಮ ಬ್ಲೂಟೂತ್‌ ಮತ್ತು ಸರಣಿ ಸಾಧನಗಳನ್ನು ಪ್ರವೇಶಿಸಿ</translation>
+<translation id="114036956334641753">ಆಡಿಯೋ ಮತ್ತು ಶೀರ್ಷಿಕೆಗಳು</translation>
 <translation id="1140610710803014750">ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಪಡೆದುಕೊಳ್ಳಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation>
 <translation id="1140746652461896221">ನೀವು ಭೇಟಿ ನೀಡುವ ಯಾವುದೇ ಪುಟದಲ್ಲಿನ ವಿಷಯವನ್ನು ನಿರ್ಬಂಧಿಸಿ</translation>
 <translation id="1143142264369994168">ಪ್ರಮಾಣಪತ್ರ ಸಹಿ ಮಾಡುವವರು</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">ತಿಳಿದಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳು</translation>
 <translation id="123578888592755962">ಡಿಸ್ಕ್ ಪೂರ್ಣವಾಗಿದೆ</translation>
 <translation id="1238191093934674082">VPN ತೆರೆಯಿರಿ</translation>
+<translation id="1239594683407221485">ಫೈಲ್‌ಗಳ ಆ್ಯಪ್‌ನಲ್ಲಿ ಸಾಧನದ ವಿಷಯವನ್ನು ಅನ್ವೇಷಿಸಿ.</translation>
 <translation id="124116460088058876">ಹೆಚ್ಚಿನ ಭಾಷೆಗಳು</translation>
 <translation id="1241753985463165747">ಮನವಿ ಸಲ್ಲಿಸಿದಾಗ, ಪ್ರಸ್ತುತ ವೆಬ್‌ಸೈಟ್‌ನಲ್ಲಿ ನಿಮ್ಮ ಎಲ್ಲ ಡೇಟಾವನ್ನು ಓದಿ, ಬದಲಾಯಿಸಿ</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> ನಿಮ್ಮ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಹೊಂದಿಸಲು ಬಯಸುತ್ತದೆ.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">ಇಂಟರ್‌ನೆಟ್ ಸಂಪರ್ಕ ಕಡಿತಗೊಳಿಸಲಾಗಿದೆ. ದಯವಿಟ್ಟು ನಿಮ್ಮ ಇಂಟರ್‌ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="1463112138205428654"><ph name="FILE_NAME" /> ಅನ್ನು ಸುಧಾರಿತ ಸಂರಕ್ಷಣೆಯ ಮೂಲಕ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
 <translation id="1464258312790801189">ನಿಮ್ಮ ಖಾತೆಗಳು</translation>
+<translation id="1464781208867302907">ಸಾಧನದ ಪ್ರಾಶಸ್ತ್ಯಗಳಿಗಾಗಿ, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಗೆ ಹೋಗಿ.</translation>
 <translation id="1465176863081977902">ಆಡಿಯೋ ವಿಳಾಸವನ್ನು ನ&amp;ಕಲಿಸಿ</translation>
 <translation id="1465827627707997754">ಪಿಜ್ಜಾ ಸ್ಲೈಸ್‌</translation>
 <translation id="1468571364034902819">ಈ ಪ್ರೊಫೈಲ್ ಬಳಸಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
@@ -745,6 +748,7 @@
 <translation id="2099686503067610784">"<ph name="CERTIFICATE_NAME" />" ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅಳಿಸುವುದೆ?</translation>
 <translation id="2100273922101894616">ಸ್ವಯಂ ಸೈನ್-ಇನ್</translation>
 <translation id="2101225219012730419">ಆವೃತ್ತಿ:</translation>
+<translation id="2111670510994270194">ಬಲಭಾಗದಲ್ಲಿ ಹೊಸ ಟ್ಯಾಬ್ ತೆರೆ</translation>
 <translation id="21133533946938348">ಪಿನ್ ಟ್ಯಾಬ್</translation>
 <translation id="2113479184312716848">&amp;ಫೈಲ್ ತೆರೆಯಿರಿ...</translation>
 <translation id="2113921862428609753">ಅಧಿಕಾರ ಮಾಹಿತಿ ಪ್ರವೇಶ</translation>
@@ -1097,7 +1101,6 @@
 <translation id="2586672484245266891">ಸಣ್ಣ URL ನಮೂದಿಸಿ</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> ನಿಂದ ಸಾಧನಗಳು</translation>
 <translation id="2594999711683503743">Google ನಲ್ಲಿ ಹುಡುಕಿ ಅಥವಾ URL ಟೈಪ್ ಮಾಡಿ</translation>
-<translation id="2597521610396315071">ಮೇಲ್ವಿಚಾರಣೆಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="2603115962224169880">ಕಂಪ್ಯೂಟರ್ ಅನ್ನು ಸ್ವಚ್ಛಗೊಳಿಸಿ</translation>
 <translation id="2603463522847370204">&amp;ಅಜ್ಞಾತ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="2604255671529671813">ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕ ದೋಷ</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3630995161997703415">ಈ ಸೈಟ್‌ ಅನ್ನು ಯಾವುದೇ ಸಮಯದಲ್ಲಿ ಬಳಸಲು ನಿಮ್ಮ ಶೆಲ್ಫ್‌ಗೆ ಅದನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="3636096452488277381">ಹೇಗಿರುವಿರಿ, <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - <ph name="TIME" /> ಉಳಿದಿದೆ</translation>
+<translation id="3637561406135221044">ಸೂಕ್ಷ್ಮವಾದ ವೈಯಕ್ತಿಕ ಡೇಟಾಕ್ಕಾಗಿ ಫೈಲ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲಾಗುತ್ತಿದೆ...</translation>
 <translation id="3637682276779847508">ನೀವು ಸರಿಯಾದ ಪಿನ್ ಅನ್‌ಲಾಕ್ ಕೀಯನ್ನು ನಮೂದಿಸದಿದ್ದಲ್ಲಿ ನಿಮ್ಮ ಸಿಮ್ ಕಾರ್ಡ್ ಅನ್ನು ಶಾಶ್ವತವಾಗಿ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗುತ್ತದೆ.</translation>
 <translation id="3640214691812501263"><ph name="USER_NAME" /> ಬಳಕೆದಾರರಿಗೆ "<ph name="EXTENSION_NAME" />" ವಿಸ್ತರಣೆಯನ್ನು ಸೇರಿಸುವುದೇ?</translation>
 <translation id="3640613767643722554">ನಿಮ್ಮ ಅಸಿಸ್ಟೆಂಟ್‌ಗೆ ನಿಮ್ಮ ಧ್ವನಿಯನ್ನು ಗುರುತಿಸಲು ಕಲಿಸಿ</translation>
@@ -2228,6 +2232,7 @@
 <translation id="425573743389990240">ವ್ಯಾಟ್‌ಗಳಲ್ಲಿ ಬ್ಯಾಟರಿ ಡಿಸ್‌ಚಾರ್ಜ್ ದರ (ನಕಾರಾತ್ಮಕ ಮೌಲ್ಯ ಎಂದರೆ ಬ್ಯಾಟರಿ ಚಾರ್ಜ್ ಆಗುತ್ತಿದೆ ಎಂದರ್ಥ)</translation>
 <translation id="4256316378292851214">ಇದರಂತೆ ವೀಡಿಯೊ ಉ&amp;ಳಿಸಿ...</translation>
 <translation id="4258348331913189841">ಫೈಲ್ ಸಿಸ್ಟಂಗಳು</translation>
+<translation id="4263223596040212967">ನಿಮ್ಮ ಕೀಬೋರ್ಡ್ ವಿನ್ಯಾಸವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="4263757076580287579">ಮುದ್ರಕದ ನೋಂದಣಿಯನ್ನು ರದ್ದುಗೊಳಿಸಲಾಗಿದೆ.</translation>
 <translation id="426564820080660648">ನವೀಕರಣಗಳಿಗಾಗಿ ಪರಿಶೀಲಿಸಲು, ದಯವಿಟ್ಟು ಇಥರ್ನೆಟ್, ವೈ-ಫೈ ಅಥವಾ ಮೊಬೈಲ್ ಡೇಟಾವನ್ನು ಬಳಸಿ.</translation>
 <translation id="4267953847983678297">ಸ್ವಯಂಚಾಲಿತವಾಗಿ ಸೆಲ್ಯುಲರ್ ನೆಟ್‌ವರ್ಕ್‌ಗೆ ಸಂಪರ್ಕಿಸಿ</translation>
@@ -2323,6 +2328,7 @@
 <translation id="4416582610654027550">ಮಾನ್ಯವಾದ URL ಟೈಪ್ ಮಾಡಿ</translation>
 <translation id="4419409365248380979">ಕುಕೀಗಳನ್ನು ಹೊಂದಿಸಲು <ph name="HOST" /> ಯಾವಾಗಲೂ ಅನುಮತಿಸುತ್ತದೆ</translation>
 <translation id="4419610272958564173">ಅಪರಿಚಿತ ಸಾಧನ (ಮಾರಾಟಗಾರರು: <ph name="VENDOR_ID" />, ಉತ್ಪನ್ನ: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">ಸಂಪರ್ಕಿಸಲು ಸಮಸ್ಯೆಯಾಗುತ್ತಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ <ph name="CARRIER_NAME" /> ಅನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="4421932782753506458">ಫ್ಲುಫಿ</translation>
 <translation id="4423376891418188461">ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಮರುಸ್ಥಾಪಿಸು</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, ನಿಮ್ಮ ನಿರ್ವಾಹಕರಿಗೆ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ನೀವು ಬದಲಾಯಿಸವುದು ಅಗತ್ಯವಿರುತ್ತದೆ.</translation>
@@ -2999,6 +3005,7 @@
 <translation id="5457599981699367932">ಅತಿಥಿಯಾಗಿ ಬ್ರೌಸ್ ಮಾಡಿ</translation>
 <translation id="5457991019809708398">ಆನ್ ಆಗಿದೆ, ರೋಮಿಂಗ್ ಸೇವೆ ಇಲ್ಲ</translation>
 <translation id="5458998536542739734">ಲಾಕ್‌ ಪರದೆಯ ಟಿಪ್ಪಣಿಗಳು</translation>
+<translation id="546322474339998983">Chrome ಬ್ರೌಸರ್ ಹಾಗೂ <ph name="DEVICE_TYPE" /> ಲಾಂಚರ್‌ನಿಂದ ಬಳಸಲ್ಪಡುತ್ತದೆ</translation>
 <translation id="5463231940765244860">ನಮೂದಿಸಿ</translation>
 <translation id="5463275305984126951"><ph name="LOCATION" /> ನ ಸೂಚಿಕೆ</translation>
 <translation id="5463856536939868464">ಮರೆಮಾಡಿದ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಹೊಂದಿರುವ ಮೆನು</translation>
@@ -3297,6 +3304,7 @@
 <translation id="5869948122057593679">ನಿಮ್ಮ ಎಲ್ಲ ವಿಂಡೋಗಳನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="5870086504539785141">ಪ್ರವೇಶಿಸುವಿಕೆ ಮೆನು ಮುಚ್ಚಿ</translation>
 <translation id="5870155679953074650">ಹಾರ್ಡ್ ಫಾಲ್ಟ್ಸ್</translation>
+<translation id="5876851302954717356">ಬಲಭಾಗದಲ್ಲಿ ಹೊಸ ಟ್ಯಾಬ್ ತೆರೆ</translation>
 <translation id="5877064549588274448">ಚಾನಲ್ ಬದಲಾಗಿದೆ. ಬದಲಾವಣೆಗಳನ್ನು ಅನ್ವಯಿಸಲು ನಿಮ್ಮ ಸಾಧನವನ್ನು ಮರುಪ್ರಾರಂಭಿಸಿ.</translation>
 <translation id="5877584842898320529">ಆಯ್ಕೆಮಾಡಿದ ಪ್ರಿಂಟರ್ ಲಭ್ಯವಿಲ್ಲ ಅಥವಾ ಸರಿಯಾಗಿ ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲಾಗಿಲ್ಲ. <ph name="BR" /> ನಿಮ್ಮ ಪ್ರಿಂಟರ್ ಪರೀಕ್ಷಿಸಿ ಅಥವಾ ಬೇರೊಂದು ಪ್ರಿಂಟರ್ ಆಯ್ಕೆಮಾಡಿ.</translation>
 <translation id="5882919346125742463">ತಿಳಿದಿರುವ ನೆಟ್‌ವರ್ಕ್‌ಗಳು</translation>
@@ -4497,6 +4505,7 @@
 <translation id="7685049629764448582">JavaScript ಸ್ಮರಣೆ</translation>
 <translation id="7685087414635069102">ಪಿನ್ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="7685301384041462804">VR ಪ್ರವೇಶಿಸುವ ಮೊದಲು ನೀವು ಈ ವೆಬ್‌ಸೈಟ್ ಅನ್ನು ನಂಬಿದ್ದೀರಿ ಎಂದು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ.</translation>
+<translation id="768549422429443215">ಭಾಷೆಗಳನ್ನು ಸೇರಿಸಿ ಅಥವಾ ಪಟ್ಟಿಯನ್ನು ಮರುಕ್ರಮಗೊಳಿಸಿ.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">ಹೊಸ ಪಾಸ್‌ವರ್ಡ್ ಖಚಿತಪಡಿಸಿ</translation>
 <translation id="7690378713476594306">ಪಟ್ಟಿಯಿಂದ ಆರಿಸಿ</translation>
@@ -4558,6 +4567,7 @@
 <translation id="7773726648746946405">ಸೆಶನ್ ಸಂಗ್ರಹಣೆ</translation>
 <translation id="7774365994322694683">ಪಕ್ಷಿ</translation>
 <translation id="7776701556330691704">ಯಾವುದೇ ಧ್ವನಿಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
+<translation id="7780252971640011240">ಸಂಪರ್ಕಿಸಲು ಸಮಸ್ಯೆಯಾಗುತ್ತಿದೆ. ಸಹಾಯಕ್ಕಾಗಿ ನಿಮ್ಮ ವಾಹಕ ಕಂಪನಿಯನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="7781335840981796660">ಎಲ್ಲ ಬಳಕೆದಾರ ಖಾತೆಗಳು ಮತ್ತು ಸ್ಥಳೀಯ ಡೇಟಾವನ್ನು ತೆಗೆದುಹಾಕಲಾಗುತ್ತದೆ.</translation>
 <translation id="7782102568078991263">Google ನಿಂದ ಇನ್ಯಾವುದೇ ಸಲಹೆಗಳಿಲ್ಲ</translation>
 <translation id="7782717250816686129">ಲಾಗಿನ್ ಸ್ಕ್ರೀನ್‌ನಲ್ಲಿ ನಿರಂತರ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುತ್ತದೆ ಮತ್ತು ರುಜುವಾತುಗಳನ್ನು ಸೆಶನ್‌ಗೆ ಸೇರಿಸುತ್ತದೆ.</translation>
diff --git a/chrome/app/resources/generated_resources_ko.xtb b/chrome/app/resources/generated_resources_ko.xtb
index 7d55c51..c305b7b 100644
--- a/chrome/app/resources/generated_resources_ko.xtb
+++ b/chrome/app/resources/generated_resources_ko.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">더 짧은 URL을 입력하세요.</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" />의 기기</translation>
 <translation id="2594999711683503743">Google에서 검색하거나 URL을 입력하세요.</translation>
-<translation id="2597521610396315071">감독 기능 추가</translation>
 <translation id="2603115962224169880">컴퓨터 정리</translation>
 <translation id="2603463522847370204">시크릿 창에서 열기(&amp;I)</translation>
 <translation id="2604255671529671813">네트워크 연결 오류</translation>
diff --git a/chrome/app/resources/generated_resources_lt.xtb b/chrome/app/resources/generated_resources_lt.xtb
index 467593b..e379521 100644
--- a/chrome/app/resources/generated_resources_lt.xtb
+++ b/chrome/app/resources/generated_resources_lt.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Įveskite trumpesnį URL</translation>
 <translation id="2588636910004461974">Įrenginiai iš „<ph name="VENDOR_NAME" />“</translation>
 <translation id="2594999711683503743">Ieškokite „Google“ arba įveskite URL</translation>
-<translation id="2597521610396315071">Priežiūros funkcijų pridėjimas</translation>
 <translation id="2603115962224169880">Išvalykite kompiuterį</translation>
 <translation id="2603463522847370204">Atidaryti &amp;inkognito lange</translation>
 <translation id="2604255671529671813">Tinklo ryšio klaida</translation>
diff --git a/chrome/app/resources/generated_resources_lv.xtb b/chrome/app/resources/generated_resources_lv.xtb
index 1e6d591..85315e8 100644
--- a/chrome/app/resources/generated_resources_lv.xtb
+++ b/chrome/app/resources/generated_resources_lv.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Lūdzu, ievadiet īsāku vietrādi URL.</translation>
 <translation id="2588636910004461974">Ierīces no: <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Meklējiet Google tīklā vai ierakstiet vietrādi URL</translation>
-<translation id="2597521610396315071">Uzraudzības iestatīšana</translation>
 <translation id="2603115962224169880">Tīriet datoru</translation>
 <translation id="2603463522847370204">Atvērt &amp;inkognito režīma logā</translation>
 <translation id="2604255671529671813">Tīkla savienojuma kļūda</translation>
diff --git a/chrome/app/resources/generated_resources_ml.xtb b/chrome/app/resources/generated_resources_ml.xtb
index be55a420..f359911 100644
--- a/chrome/app/resources/generated_resources_ml.xtb
+++ b/chrome/app/resources/generated_resources_ml.xtb
@@ -970,7 +970,7 @@
 <translation id="2423578206845792524">ചിത്രം ഇതായി സം&amp;രക്ഷിക്കുക...</translation>
 <translation id="2428510569851653187">ടാബ് ക്രാഷാകുമ്പോൾ നിങ്ങൾ എന്താണ് ചെയ്‌തിരുന്നതെന്ന് വിവരിക്കുക</translation>
 <translation id="2431027948063157455">Google Assistant-ന് ലോഡ് ചെയ്യാനായില്ല, നെറ്റ്‌വർക്ക് കണക്ഷൻ പരിശോധിച്ച് വീണ്ടും ശ്രമിക്കുക.</translation>
-<translation id="243242775089461296">ഈ സൈറ്റിൽ മൂന്നാം കക്ഷി കുക്കികളുടെ ബ്ലോക്ക് ചെയ്യൽ ഓഫാക്കിയിരിക്കുന്നു</translation>
+<translation id="243242775089461296">ഈ സൈറ്റിൽ മൂന്നാം കക്ഷി കുക്കി ബ്ലോക്ക് ചെയ്യൽ ഓഫാക്കിയിരിക്കുന്നു</translation>
 <translation id="2432753757290432042">Linux (ബീറ്റ) അപ്‌ഡേറ്റ് ആവശ്യമാണ്</translation>
 <translation id="2433452467737464329">പേജ് സ്വയമേവ പുതുക്കാൻ URL-ൽ ചോദ്യ പാരാ ചേർക്കുക: chrome://network/?refresh=&lt;sec&gt;</translation>
 <translation id="2433507940547922241">കാഴ്ച്ച</translation>
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">ദൈർഘ്യം കുറഞ്ഞ URL നൽകുക</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" />-ൽ നിന്നുള്ള ഉപകരണങ്ങൾ</translation>
 <translation id="2594999711683503743">Google-ൽ തിരയുക അല്ലെങ്കിൽ URL ടൈപ്പ് ചെയ്യുക</translation>
-<translation id="2597521610396315071">മേൽനോട്ടം ചേർക്കുക</translation>
 <translation id="2603115962224169880">നിങ്ങളുടെ കമ്പ്യൂട്ടർ ക്ലീൻ ചെയ്യുക</translation>
 <translation id="2603463522847370204">&amp;അദൃശ്യ വിന്‍ഡോയില്‍ തുറക്കുക</translation>
 <translation id="2604255671529671813">നെറ്റ്‌വർക്ക് കണക്ഷൻ പിശക്</translation>
@@ -2793,7 +2792,7 @@
 <translation id="5142961317498132443">പരിശോധിച്ചുറപ്പിക്കൽ</translation>
 <translation id="5143374789336132547">നിങ്ങൾ ഹോം ബട്ടൺ ക്ലിക്കുചെയ്യുമ്പോൾ ദൃശ്യമാകുന്ന പേജിനെ "<ph name="EXTENSION_NAME" />" വിപുലീകരണം മാറ്റി.</translation>
 <translation id="5143712164865402236">പൂര്‍‌ണ്ണ സ്‌ക്രീനില്‍‌ പ്രവേശിക്കുക</translation>
-<translation id="5145461783043820456">മൂന്നാം കക്ഷി കുക്കികളുടെ ബ്ലോക്ക് ചെയ്യൽ ഓണാണ്</translation>
+<translation id="5145461783043820456">മൂന്നാം കക്ഷി കുക്കി ബ്ലോക്ക് ചെയ്യൽ ഓണാണ്</translation>
 <translation id="514575469079499857">ലൊക്കേഷൻ നിർണ്ണയിക്കാൻ നിങ്ങളുടെ IP വിലാസം ഉപയോഗിക്കുക (ഡിഫോൾട്ട്)</translation>
 <translation id="5146995429444047494"><ph name="ORIGIN" /> എന്നതിന്റെ അറിയിപ്പുകൾ ബ്ലോക്ക് ചെയ്‌തിരിക്കുന്നു</translation>
 <translation id="5150254825601720210">നെറ്റ്‌സ്‌കേപ്പ് സര്‍‌ട്ടിഫിക്കറ്റ് SSL സെര്‍‌വര്‍‌ നാമം</translation>
@@ -4279,7 +4278,7 @@
 <translation id="7334190995941642545">നിലവിൽ Smart Lock ലഭ്യമല്ല. പിന്നീട് വീണ്ടും ശ്രമിക്കുക.</translation>
 <translation id="7334274148831027933">ഡോക്ക് ചെയ്‌ത മാഗ്നിഫയർ പ്രവർത്തനക്ഷമമാക്കുക</translation>
 <translation id="7335974957018254119">അക്ഷരത്തെറ്റ് പരിശോധന ഉപയോഗിക്കേണ്ട ഭാഷകൾ</translation>
-<translation id="7336799713063880535">അറിയിപ്പ് തടഞ്ഞു.</translation>
+<translation id="7336799713063880535">അറിയിപ്പുകൾ തടഞ്ഞു.</translation>
 <translation id="7338630283264858612">ഉപകരണത്തിന്റെ സീരിയൽ നമ്പർ അസാധുവാണ്.</translation>
 <translation id="7339763383339757376">PKCS #7, ഒറ്റ സര്‍‌ട്ടിഫിക്കറ്റ്</translation>
 <translation id="7339785458027436441">ടൈപ്പ് ചെയ്യുന്ന സമയത്ത് സ്‌പെല്ലിംഗ് പരിശോധിക്കുക</translation>
@@ -5246,7 +5245,7 @@
 <translation id="8732212173949624846">നിങ്ങളുടെ സൈൻ ഇൻ ചെയ്ത എല്ലാ ഉപകരണങ്ങളിലെയും ബ്രൗസിംഗ് ചരിത്രം റീഡുചെയ്യുക, മാറ്റുക</translation>
 <translation id="8732844209475700754">സ്വകാര്യത, സുരക്ഷ, ഡാറ്റാ ശേഖരണം എന്നിവയുമായി ബന്ധപ്പെട്ട കൂടുതൽ ക്രമീകരണം</translation>
 <translation id="8734073480934656039">ഈ ക്രമീകരണം പ്രവർത്തനക്ഷമമാക്കുന്നത് സ്റ്റാർട്ടപ്പിൽ കിയോ‌ക് ആപ്പുകൾ സ്വയമേവ ലോഞ്ച് ചെയ്യുന്നതിന് അനുവദിക്കുന്നു.</translation>
-<translation id="8734674662128056360">മൂന്നാം കക്ഷി കുക്കികളുടെ ബ്ലോക്ക് ചെയ്യൽ</translation>
+<translation id="8734674662128056360">മൂന്നാം കക്ഷി കുക്കി ബ്ലോക്ക് ചെയ്യൽ</translation>
 <translation id="873545264931343897"><ph name="PLUGIN_NAME" /> അപ്‌ഡേറ്റ് ചെയ്‌തുകഴിയുമ്പോൾ, അത് സജീവമാക്കുന്നതിന് പേജ് റീലോഡുചെയ്യുക</translation>
 <translation id="8736288397686080465">ഈ സൈറ്റ് പശ്‌ചാത്തലത്തിൽ അപ്‌ഡേറ്റ് ചെയ്‌തു.</translation>
 <translation id="8737685506611670901"><ph name="REPLACED_HANDLER_TITLE" /> എന്നതിന് പകരം <ph name="PROTOCOL" /> ലിങ്കുകൾ തുറക്കുക</translation>
diff --git a/chrome/app/resources/generated_resources_mr.xtb b/chrome/app/resources/generated_resources_mr.xtb
index 7fe8e022..e158ac2 100644
--- a/chrome/app/resources/generated_resources_mr.xtb
+++ b/chrome/app/resources/generated_resources_mr.xtb
@@ -1094,7 +1094,6 @@
 <translation id="2586672484245266891">कृपया एक लहान URL टाका</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> कडील डिव्हाइस</translation>
 <translation id="2594999711683503743">Google वर शोधा किंवा URL टाइप करा</translation>
-<translation id="2597521610396315071">पर्यवेक्षण जोडा</translation>
 <translation id="2603115962224169880">काँप्युटर साफ करा</translation>
 <translation id="2603463522847370204">&amp;गुप्त विंडोमध्ये उघडा</translation>
 <translation id="2604255671529671813">नेटवर्क कनेक्शन एरर</translation>
@@ -2016,10 +2015,10 @@
 <translation id="3937734102568271121">नेहमी <ph name="LANGUAGE" /> मध्‍ये भाषांतर करा</translation>
 <translation id="3938128855950761626">विक्रेता <ph name="VENDOR_ID" /> कडील डिव्हाइस</translation>
 <translation id="3940233957883229251">अॉटो-रिपीट सुरू करा</translation>
-<translation id="3941565636838060942">या प्रोग्रामवरील अॅक्सेस लपवण्यासाठी, तुम्ही नियंत्रण पॅनेलमधील
-  <ph name="CONTROL_PANEL_APPLET_NAME" /> वापरून तो अनइंस्टॉल करणे अावश्यक आहे.
+<translation id="3941565636838060942">या प्रोग्रामवरील अॅक्सेस लपवण्यासाठी, तुम्हाला नियंत्रण पॅनेलमधील
+  <ph name="CONTROL_PANEL_APPLET_NAME" /> वापरून तो अनइंस्टॉल करण्याची आवश्यकता आहे.
 
-  तुम्ही <ph name="CONTROL_PANEL_APPLET_NAME" /> सुरू करू इच्छिता?</translation>
+  तुम्ही <ph name="CONTROL_PANEL_APPLET_NAME" /> सुरुवात करू इच्छिता?</translation>
 <translation id="394183848452296464">शॉर्टकट तयार करू शकत नाही</translation>
 <translation id="3943582379552582368">&amp;मागील</translation>
 <translation id="3943857333388298514">पेस्ट करा</translation>
diff --git a/chrome/app/resources/generated_resources_ms.xtb b/chrome/app/resources/generated_resources_ms.xtb
index 37ae0110..028f4d7 100644
--- a/chrome/app/resources/generated_resources_ms.xtb
+++ b/chrome/app/resources/generated_resources_ms.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Sila masukkan URL yang lebih pendek</translation>
 <translation id="2588636910004461974">Peranti daripada <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Cari Google atau taipkan URL</translation>
-<translation id="2597521610396315071">Tambahkan Pengawasan</translation>
 <translation id="2603115962224169880">Bersihkan komputer</translation>
 <translation id="2603463522847370204">Buka dalam tetingkap &amp;inkognito</translation>
 <translation id="2604255671529671813">Ralat sambungan rangkaian</translation>
diff --git a/chrome/app/resources/generated_resources_nl.xtb b/chrome/app/resources/generated_resources_nl.xtb
index 596d53b..ebbc1ea3 100644
--- a/chrome/app/resources/generated_resources_nl.xtb
+++ b/chrome/app/resources/generated_resources_nl.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Geef een kortere URL op</translation>
 <translation id="2588636910004461974">Apparaten van <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Zoek op Google of typ een URL</translation>
-<translation id="2597521610396315071">Toezicht toevoegen</translation>
 <translation id="2603115962224169880">Computer opruimen</translation>
 <translation id="2603463522847370204">Openen in &amp;incognitovenster</translation>
 <translation id="2604255671529671813">Fout bij netwerkverbinding</translation>
diff --git a/chrome/app/resources/generated_resources_no.xtb b/chrome/app/resources/generated_resources_no.xtb
index 97bb4ed..b96f71d 100644
--- a/chrome/app/resources/generated_resources_no.xtb
+++ b/chrome/app/resources/generated_resources_no.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">Skriv inn en kortere nettadresse</translation>
 <translation id="2588636910004461974">Enheter fra <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Søk på Google, eller skriv inn en nettadresse</translation>
-<translation id="2597521610396315071">Legg til tilsyn</translation>
 <translation id="2603115962224169880">Rydd opp i datamaskinen</translation>
 <translation id="2603463522847370204">Åpne i &amp;inkognitovindu</translation>
 <translation id="2604255671529671813">Feil i nettverkstilkobling</translation>
diff --git a/chrome/app/resources/generated_resources_pl.xtb b/chrome/app/resources/generated_resources_pl.xtb
index a3b800e..14d2a01 100644
--- a/chrome/app/resources/generated_resources_pl.xtb
+++ b/chrome/app/resources/generated_resources_pl.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Podaj krótszy adres URL</translation>
 <translation id="2588636910004461974">Urządzenia od dostawcy <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Wyszukaj w Google lub wpisz URL</translation>
-<translation id="2597521610396315071">Dodaj nadzór</translation>
 <translation id="2603115962224169880">Oczyść komputer</translation>
 <translation id="2603463522847370204">Otwórz w oknie &amp;incognito</translation>
 <translation id="2604255671529671813">Błąd połączenia z siecią</translation>
diff --git a/chrome/app/resources/generated_resources_pt-BR.xtb b/chrome/app/resources/generated_resources_pt-BR.xtb
index c8fcb4c..029d124 100644
--- a/chrome/app/resources/generated_resources_pt-BR.xtb
+++ b/chrome/app/resources/generated_resources_pt-BR.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Informe um URL menor</translation>
 <translation id="2588636910004461974">Dispositivos deste fornecedor: <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Pesquisar no Google ou digitar o URL</translation>
-<translation id="2597521610396315071">Adicionar supervisão</translation>
 <translation id="2603115962224169880">Limpe o computador</translation>
 <translation id="2603463522847370204">Abrir em &amp;janela anônima</translation>
 <translation id="2604255671529671813">Erro de conexão da rede</translation>
diff --git a/chrome/app/resources/generated_resources_pt-PT.xtb b/chrome/app/resources/generated_resources_pt-PT.xtb
index 5c5a5d6d..c6f26e7 100644
--- a/chrome/app/resources/generated_resources_pt-PT.xtb
+++ b/chrome/app/resources/generated_resources_pt-PT.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">Introduza um URL mais curto.</translation>
 <translation id="2588636910004461974">Dispositivos de <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Pesquise no Google ou escreva o URL</translation>
-<translation id="2597521610396315071">Adicione a supervisão</translation>
 <translation id="2603115962224169880">Limpar o computador</translation>
 <translation id="2603463522847370204">Abrir na janela de &amp;navegação anónima</translation>
 <translation id="2604255671529671813">Erro de ligação à rede</translation>
diff --git a/chrome/app/resources/generated_resources_ro.xtb b/chrome/app/resources/generated_resources_ro.xtb
index b07b317d..1ac864ff 100644
--- a/chrome/app/resources/generated_resources_ro.xtb
+++ b/chrome/app/resources/generated_resources_ro.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Introdu o adresă URL mai scurtă</translation>
 <translation id="2588636910004461974">Dispozitive de la <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Caută pe Google sau introdu adresa URL</translation>
-<translation id="2597521610396315071">Adaugă supraveghere</translation>
 <translation id="2603115962224169880">Curăță computerul</translation>
 <translation id="2603463522847370204">Deschideți într-o &amp;fereastră incognito</translation>
 <translation id="2604255671529671813">Eroare de conectare la rețea</translation>
@@ -1794,7 +1793,7 @@
 <translation id="3630995161997703415">Adaugă acest site pe raft pentru a-l folosi oricând</translation>
 <translation id="3636096452488277381">Bună ziua, <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% – Timp rămas: <ph name="TIME" /></translation>
-<translation id="3637561406135221044">Se scanează fișierele pentru date sensibile...</translation>
+<translation id="3637561406135221044">Se caută date sensibile în fișiere...</translation>
 <translation id="3637682276779847508">Cardul SIM va fi dezactivat definitiv dacă nu vei introduce cheia corectă de deblocare a codului PIN.</translation>
 <translation id="3640214691812501263">Adaugi „<ph name="EXTENSION_NAME" />” pentru <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Învață Asistentul să îți recunoască vocea</translation>
@@ -2233,7 +2232,7 @@
 <translation id="425573743389990240">Rata de descărcare a bateriei în wați (valoarea negativă înseamnă că bateria se încarcă)</translation>
 <translation id="4256316378292851214">Sal&amp;vează videoclipul ca...</translation>
 <translation id="4258348331913189841">Sisteme de fișiere</translation>
-<translation id="4263223596040212967">Verifică aspectul tastaturii și încearcă din nou.</translation>
+<translation id="4263223596040212967">Verifică structura tastaturii și încearcă din nou.</translation>
 <translation id="4263757076580287579">Înregistrarea imprimantei a fost anulată.</translation>
 <translation id="426564820080660648">Pentru a verifica dacă există actualizări, utilizați Ethernet, Wi-Fi sau datele mobile.</translation>
 <translation id="4267953847983678297">Conectează-te automat la o rețea mobilă</translation>
diff --git a/chrome/app/resources/generated_resources_ru.xtb b/chrome/app/resources/generated_resources_ru.xtb
index 2745088..d7a5b9d 100644
--- a/chrome/app/resources/generated_resources_ru.xtb
+++ b/chrome/app/resources/generated_resources_ru.xtb
@@ -1099,7 +1099,6 @@
 <translation id="2586672484245266891">Слишком длинный URL.</translation>
 <translation id="2588636910004461974">Устройства от поставщика <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Введите запрос для поиска в Google или укажите URL</translation>
-<translation id="2597521610396315071">Как настроить родительский контроль</translation>
 <translation id="2603115962224169880">Удалить вредоносное ПО с компьютера</translation>
 <translation id="2603463522847370204">Открыть в режиме &amp;инкогнито</translation>
 <translation id="2604255671529671813">Ошибка подключения к сети</translation>
diff --git a/chrome/app/resources/generated_resources_sk.xtb b/chrome/app/resources/generated_resources_sk.xtb
index 5b7982e..ce607c5 100644
--- a/chrome/app/resources/generated_resources_sk.xtb
+++ b/chrome/app/resources/generated_resources_sk.xtb
@@ -1100,7 +1100,6 @@
 <translation id="2586672484245266891">Zadajte kratšiu webovú adresu</translation>
 <translation id="2588636910004461974">Zariadenia od dodávateľa <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Vyhľadávajte na Googli alebo zadajte webovú adresu</translation>
-<translation id="2597521610396315071">Pridanie dohľadu</translation>
 <translation id="2603115962224169880">Vyčistiť počítač</translation>
 <translation id="2603463522847370204">Otvoriť v okne &amp;inkognito</translation>
 <translation id="2604255671529671813">Chyba sieťového pripojenia</translation>
diff --git a/chrome/app/resources/generated_resources_sl.xtb b/chrome/app/resources/generated_resources_sl.xtb
index cdd9fb52..01bdd4ea 100644
--- a/chrome/app/resources/generated_resources_sl.xtb
+++ b/chrome/app/resources/generated_resources_sl.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Vnesite krajši URL</translation>
 <translation id="2588636910004461974">Naprave ponudnika <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Iščite v Google ali vnesite URL</translation>
-<translation id="2597521610396315071">Dodajanje nadzora</translation>
 <translation id="2603115962224169880">Čiščenje računalnika</translation>
 <translation id="2603463522847370204">Odpri v &amp;oknu brez beleženja zgodovine</translation>
 <translation id="2604255671529671813">Napaka v omrežni povezavi</translation>
diff --git a/chrome/app/resources/generated_resources_sr.xtb b/chrome/app/resources/generated_resources_sr.xtb
index 59f902c..2aebe39 100644
--- a/chrome/app/resources/generated_resources_sr.xtb
+++ b/chrome/app/resources/generated_resources_sr.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">Унесите краћи URL</translation>
 <translation id="2588636910004461974">Уређаји продавца <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Претражите Google или унесите URL</translation>
-<translation id="2597521610396315071">Додајте надзор</translation>
 <translation id="2603115962224169880">Очистите рачунар</translation>
 <translation id="2603463522847370204">Отвори у &amp;прозору без архивирања</translation>
 <translation id="2604255671529671813">Грешка мрежне везе</translation>
diff --git a/chrome/app/resources/generated_resources_sv.xtb b/chrome/app/resources/generated_resources_sv.xtb
index 64cc0ae..4b1d66c 100644
--- a/chrome/app/resources/generated_resources_sv.xtb
+++ b/chrome/app/resources/generated_resources_sv.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Ange en kortare webbadress</translation>
 <translation id="2588636910004461974">Enheter från <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Sök på Google eller skriv webbadressen</translation>
-<translation id="2597521610396315071">Lägg till kontroll</translation>
 <translation id="2603115962224169880">Rensa upp på datorn</translation>
 <translation id="2603463522847370204">Öppna i &amp;inkognitofönster</translation>
 <translation id="2604255671529671813">Fel vid nätverksanslutning</translation>
diff --git a/chrome/app/resources/generated_resources_sw.xtb b/chrome/app/resources/generated_resources_sw.xtb
index 02f45fb..fdf4add 100644
--- a/chrome/app/resources/generated_resources_sw.xtb
+++ b/chrome/app/resources/generated_resources_sw.xtb
@@ -1098,7 +1098,6 @@
 <translation id="2586672484245266891">Tafadhali weka URL fupi</translation>
 <translation id="2588636910004461974">Vifaa kutoka <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Tafuta kwenye Google au charaza URL</translation>
-<translation id="2597521610396315071">Ongeza Usimamizi</translation>
 <translation id="2603115962224169880">Futa programu hatari kwenye kompyuta yako</translation>
 <translation id="2603463522847370204">Fungua kwenye dirisha &amp;chini kwa chini</translation>
 <translation id="2604255671529671813">Hitilafu ya muunganisho wa mtandao</translation>
diff --git a/chrome/app/resources/generated_resources_ta.xtb b/chrome/app/resources/generated_resources_ta.xtb
index d468dd9..e96cc27 100644
--- a/chrome/app/resources/generated_resources_ta.xtb
+++ b/chrome/app/resources/generated_resources_ta.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">தவறான பின் பல முறை உள்ளிடப்பட்டதால் பாதுகாப்பு விசை பூட்டப்பட்டது. திறப்பதற்கு அதை அகற்றி மீண்டும் செருகவும்.</translation>
 <translation id="1137673463384776352"><ph name="APP" /> இல் இணைப்பைத் திற</translation>
 <translation id="1140351953533677694">உங்கள் புளூடூத் மற்றும் தொடர் சாதனங்களை அணுகலாம்</translation>
+<translation id="114036956334641753">ஆடியோவும் வசனங்களும்</translation>
 <translation id="1140610710803014750">உங்கள் எல்லா சாதனங்களிலும் புத்தகக்குறிகளைப் பெற, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்.</translation>
 <translation id="1140746652461896221">நான் பார்வையிடும் அனைத்துப் பக்கங்களிலும் உள்ளடக்கத்தை தடு</translation>
 <translation id="1143142264369994168">சான்றிதழ் கையொப்பமிடுநர்</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">தெரிந்த நெட்வொர்க்குகள்autof</translation>
 <translation id="123578888592755962">வட்டு நிறைந்துவிட்டது</translation>
 <translation id="1238191093934674082">திறந்தநிலை VPN</translation>
+<translation id="1239594683407221485">சாதனத்தின் உள்ளடத்தை Files ஆப்ஸில் பாருங்கள்.</translation>
 <translation id="124116460088058876">மேலும் மொழிகள்</translation>
 <translation id="1241753985463165747">அனுமதித்தால், தற்போதைய இணையதளத்தில் உங்கள் எல்லாத் தரவையும் படிக்கும், மாற்றும்</translation>
 <translation id="1242633766021457174">உங்கள் அமைப்புகளை மீட்டமைக்க <ph name="THIRD_PARTY_TOOL_NAME" /> விரும்புகிறது.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">இணையம் துண்டிக்கப்பட்டது. இணைய இணைப்பைச் சரிபார்த்து, மீண்டும் முயலவும்.</translation>
 <translation id="1463112138205428654"><ph name="FILE_NAME" /> கோப்பை 'மேம்பட்ட பாதுகாப்பு' அம்சம் தடுத்துள்ளது.</translation>
 <translation id="1464258312790801189">உங்கள் கணக்குகள்</translation>
+<translation id="1464781208867302907">சாதன விருப்பத்தேர்வுகளைப் பார்க்க அமைப்புகளுக்குச் செல்லுங்கள்.</translation>
 <translation id="1465176863081977902">ஆடியோ முகவரியை ந&amp;கலெடு</translation>
 <translation id="1465827627707997754">பீட்சா துண்டு</translation>
 <translation id="1468571364034902819">இந்தச் சுயவிவரத்தைப் பயன்படுத்த முடியாது</translation>
@@ -744,6 +747,7 @@
 <translation id="2099686503067610784">சேவையக சான்றிதழ் "<ph name="CERTIFICATE_NAME" />" ஐ நீக்கவா?</translation>
 <translation id="2100273922101894616">தானாக உள்நுழையவும்</translation>
 <translation id="2101225219012730419">பதிப்பு:</translation>
+<translation id="2111670510994270194">வலதுபக்கத்தில் புதிய தாவல்</translation>
 <translation id="21133533946938348">தாவலைப் பொருத்து</translation>
 <translation id="2113479184312716848">Open &amp;File...</translation>
 <translation id="2113921862428609753">அங்கீகாரத் தகவல் அணுகல்</translation>
@@ -1097,7 +1101,6 @@
 <translation id="2586672484245266891">சிறிய URLஐ உள்ளிடவும்</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> இன் சாதனங்கள்</translation>
 <translation id="2594999711683503743">Googleளில் தேடவும் அல்லது URLலை உள்ளிடவும்</translation>
-<translation id="2597521610396315071">கண்காணிப்பைச் சேர்த்தல்</translation>
 <translation id="2603115962224169880">கம்ப்யூட்டரை மீட்டமைக்கவும்</translation>
 <translation id="2603463522847370204">&amp;மறைநிலை சாளரத்தில் திற</translation>
 <translation id="2604255671529671813">நெட்வொர்க் இணைப்புப் பிழை</translation>
@@ -1235,7 +1238,7 @@
 <translation id="2785873697295365461">கோப்பு விளக்கிகள்</translation>
 <translation id="2787354132612937472">—</translation>
 <translation id="2788135150614412178">+</translation>
-<translation id="2791952154587244007">பிழை ஏற்பட்டது. இந்தச் சாதனத்தில் கியோஸ்க் பயன்பாட்டால் தானாகத் துவங்க முடியாது.</translation>
+<translation id="2791952154587244007">பிழை ஏற்பட்டது. இந்தச் சாதனத்தில் கியோஸ்க் ஆப்ஸால் தானாகத் துவங்க முடியாது.</translation>
 <translation id="2792290659606763004">Android ஆப்ஸை அகற்றவா?</translation>
 <translation id="2794233252405721443">தளம் தடுக்கப்பட்டது</translation>
 <translation id="2796424461616874739">"<ph name="DEVICE_NAME" />" உடன் இணைக்கும்போது அங்கீகரிப்புக்கான நேரம் முடிந்தது.</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3630995161997703415">இந்தத் தளத்தை எந்த நேரத்திலும் பயன்படுத்த அதனை உங்கள் ஷெல்ஃபில் சேர்க்கவும்</translation>
 <translation id="3636096452488277381">நலமா <ph name="USER_GIVEN_NAME" />.</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - <ph name="TIME" /> மீதமுள்ளது</translation>
+<translation id="3637561406135221044">பாதுகாக்கப்பட வேண்டிய தனிப்பட்ட தரவைக் கண்டறிய கோப்புகள் ஸ்கேன் செய்யப்படுகின்றன...</translation>
 <translation id="3637682276779847508">பின்னின் தடையை நீக்குவதற்கான சரியான குறியீட்டை உள்ளிடவில்லை எனில், சிம் கார்டு நிரந்தரமாக முடக்கப்படும்.</translation>
 <translation id="3640214691812501263"><ph name="USER_NAME" />க்கு "<ph name="EXTENSION_NAME" />"ஐச் சேர்க்கவா?</translation>
 <translation id="3640613767643722554">உங்கள் குரலை அடையாளம் காண அசிஸ்டண்ட்டுக்குக் கற்றுத்தரவும்</translation>
@@ -2228,6 +2232,7 @@
 <translation id="425573743389990240">வாட்ஸ் அலகில் பேட்டரி வெளியேற்ற வீதம் (எதிர்மறையான மதிப்பு என்பது பேட்டரி மின்னேற்றம் செய்யப்படுகிறது என பொருளாகும்)</translation>
 <translation id="4256316378292851214">வீடியோவை இவ்வாறு சே&amp;மி...</translation>
 <translation id="4258348331913189841">கோப்பு முறைமைகள்</translation>
+<translation id="4263223596040212967">கீபோர்டின் தளவமைப்பை சரிபார்த்துவிட்டு மீண்டும் முயலவும்.</translation>
 <translation id="4263757076580287579">அச்சுப்பொறியைப் பதிவுசெய்தல் ரத்து செய்யப்பட்டது.</translation>
 <translation id="426564820080660648">புதுப்பிப்புகளைப் பார்க்க, ஈத்தர்நெட், வைஃபை அல்லது மொபைல் டேட்டாவைப் பயன்படுத்தவும்.</translation>
 <translation id="4267953847983678297">தானாகவே மொபைல் டேட்டாவுடன் இணை</translation>
@@ -2323,6 +2328,7 @@
 <translation id="4416582610654027550">சரியான URLஐ உள்ளிடவும்</translation>
 <translation id="4419409365248380979">குக்கீகளை அமைக்க <ph name="HOST" /> ஐ எப்போதும் அனுமதி</translation>
 <translation id="4419610272958564173">தெரியாத சாதனம் (விற்பனையாளர்: <ph name="VENDOR_ID" />, தயாரிப்பு: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">இணைப்பதில் சிக்கல் உள்ளது. உதவிக்கு <ph name="CARRIER_NAME" /> நிறுவனத்தைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="4421932782753506458">ஃபளஃபி</translation>
 <translation id="4423376891418188461">அமைப்புகளை மீட்டெடு</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, உங்கள் கடவுச்சொல்லை மாற்றும்படி நிர்வாகி கோருகிறார்.</translation>
@@ -2998,6 +3004,7 @@
 <translation id="5457599981699367932">விருந்தினராக உலாவுங்கள்</translation>
 <translation id="5457991019809708398">ஆன், ரோமிங்கில் இல்லை</translation>
 <translation id="5458998536542739734">லாக் ஸ்கிரீன் குறிப்புகள்</translation>
+<translation id="546322474339998983">Chrome உலாவியாலும் <ph name="DEVICE_TYPE" /> தொடக்கியாலும் பயன்படுத்தப்படுகிறது</translation>
 <translation id="5463231940765244860">உள்ளிடுக</translation>
 <translation id="5463275305984126951"><ph name="LOCATION" /> இன் பொருளடக்கம்</translation>
 <translation id="5463856536939868464">மறைந்த புக்மார்க்குகளைக் கொண்ட மெனு</translation>
@@ -3296,6 +3303,7 @@
 <translation id="5869948122057593679">அனைத்துச் சாளரங்களையும் மூடு</translation>
 <translation id="5870086504539785141">அணுகல்தன்மை மெனுவை மூடு</translation>
 <translation id="5870155679953074650">ஹார்டு ஃபால்ட்கள்</translation>
+<translation id="5876851302954717356">வலதுபக்கத்தில் புதிய தாவல்</translation>
 <translation id="5877064549588274448">சேனல் மாற்றப்பட்டது. மாற்றங்களைச் செயல்படுத்த உங்கள் சாதனத்தை மீண்டும் தொடங்கவும்.</translation>
 <translation id="5877584842898320529">தேர்ந்தெடுத்த பிரிண்டர் இல்லை அல்லது சரியாக நிறுவப்படவில்லை.<ph name="BR" /> பிரிண்டரைச் சரிபார்க்கவும் அல்லது மற்றொரு பிரிண்டரைத் தேர்ந்தெடுக்கவும்.</translation>
 <translation id="5882919346125742463">தெரிந்த நெட்வொர்க்குகள்</translation>
@@ -4494,6 +4502,7 @@
 <translation id="7685049629764448582">JavaScript நினைவகம்</translation>
 <translation id="7685087414635069102">பின் தேவை</translation>
 <translation id="7685301384041462804">VRரைத் தொடங்குவதற்கு முன் இது நம்பகமான தளமா என்பதை உறுதிசெய்து கொள்ளவும்.</translation>
+<translation id="768549422429443215">மொழிகளைச் சேர்க்கவும் அல்லது பட்டியலை மாற்றியமைக்கவும்.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">புதிய கடவுச்சொல்லை உறுதிப்படுத்துக</translation>
 <translation id="7690378713476594306">பட்டியலில் இருந்து தேர்வு செய்யவும்</translation>
@@ -4555,6 +4564,7 @@
 <translation id="7773726648746946405">அமர்வு சேமிப்பகம்</translation>
 <translation id="7774365994322694683">பறவை</translation>
 <translation id="7776701556330691704">குரல்கள் எதுவும் இல்லை</translation>
+<translation id="7780252971640011240">இணைப்பதில் சிக்கல் உள்ளது. உதவிக்கு மொபைல் நிறுவனத்தைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="7781335840981796660">எல்லா பயனர்களின் கணக்குகளும், அகத் தரவும் அகற்றப்படும்.</translation>
 <translation id="7782102568078991263">Google இலிருந்து மேலும் பரிந்துரைகள் இல்லை</translation>
 <translation id="7782717250816686129">உள்நுழையும் திரையில் நிலையான தரவைச் சேமித்து அமர்வினுள் அனுமதிச் சான்றுகளை உள்ளிடு.</translation>
diff --git a/chrome/app/resources/generated_resources_te.xtb b/chrome/app/resources/generated_resources_te.xtb
index 8113a2a..f6ba35d51 100644
--- a/chrome/app/resources/generated_resources_te.xtb
+++ b/chrome/app/resources/generated_resources_te.xtb
@@ -1095,7 +1095,6 @@
 <translation id="2586672484245266891">దయచేసి చిన్న URLని నమోదు చేయండి</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> నుండి పరికరాలు</translation>
 <translation id="2594999711683503743">Googleలో వెతకండి లేదా URLను టైప్ చేయండి</translation>
-<translation id="2597521610396315071">పర్యవేక్షణను జోడించండి</translation>
 <translation id="2603115962224169880">కంప్యూటర్‌ నుండి హానికరమైనవి తీసివేయండి</translation>
 <translation id="2603463522847370204">&amp;ఒక అజ్ఞాత విండోలో తెరువు</translation>
 <translation id="2604255671529671813">నెట్‌వర్క్ కనెక్షన్ ఎర్రర్</translation>
@@ -1668,7 +1667,7 @@
 <translation id="346431825526753">ఇది <ph name="CUSTODIAN_EMAIL" /> నిర్వహించే చిన్నపిల్లల ఖాతా.</translation>
 <translation id="3468999815377931311">Android ఫోన్</translation>
 <translation id="3470442499439619530">ఈ వినియోగదారును తీసివేయి</translation>
-<translation id="3471876058939596279">వీడియో కోసం HDMI ఇంకా USB రకం-C పోర్ట్‌లను ఒకే సమయంలో ఉపయోగించకూడదు. వేరే వీడియో పోర్ట్‌ను ఉపయోగించండి.</translation>
+<translation id="3471876058939596279">వీడియో కోసం HDMIని, USB రకం-C పోర్ట్‌లను ఒకే సమయంలో ఉపయోగించకూడదు. వేరే వీడియో పోర్ట్‌ను ఉపయోగించండి.</translation>
 <translation id="3473479545200714844">స్క్రీన్ మాగ్నిఫైయర్</translation>
 <translation id="3475843873335999118">క్షమించండి, మీ వేలిముద్ర ఇప్పటికీ గుర్తించబడలేదు. దయచేసి మీ పాస్‌వర్డ్‌ను నమోదు చేయండి.</translation>
 <translation id="3476303763173086583">వినియోగం &amp; విశ్లేషణల డేటాను పంపండి. సమస్య విశ్లేషణ, పరికరం, యాప్ వినియోగ డేటాను ఆటోమేటిక్‌గా Googleకి పంపడం ద్వారా మీ చిన్నారి Android అనుభవాన్ని మెరుగుపరచడంలో సహాయపడండి. ఇది మీ చిన్నారి గురించి గుర్తించడానికి ఉపయోగించబడదు, ఇది కేవలం సిస్టమ్, యాప్ స్థిరత్వానికి, ఇతర మెరుగుదలలకు సహాయపడుతుంది. కొంత సముదాయ డేటా కూడా Google యాప్‌లకు, అలాగే Android డెవలపర్‌ల లాంటి భాగస్వాములకు సహాయపడుతుంది. ఈ <ph name="BEGIN_LINK1" />సెట్టింగ్‌<ph name="END_LINK1" />ని యజమాని అమలు చేసారు. ఈ పరికరానికి సంబంధించిన విశ్లేషణ, వినియోగ డేటాను Googleకి పంపేలా యజమాని ఎంచుకోవచ్చు. మీ చిన్నారి కోసం అదనపు వెబ్ &amp; యాప్ కార్యకలాపం సెట్టింగ్‌ను ఆన్ చేసినట్లయితే, ఈ డేటా వారి Google ఖాతాలో సేవ్ చేయబడవచ్చు. <ph name="BEGIN_LINK2" />మరింత తెలుసుకోండి<ph name="END_LINK2" /></translation>
@@ -4265,7 +4264,7 @@
 <translation id="7334190995941642545">Smart Lock ప్రస్తుతం అందుబాటులో లేదు. దయచేసి తర్వాత మళ్లీ ప్రయత్నించండి.</translation>
 <translation id="7334274148831027933">డాక్ చేయబడిన మాగ్నిఫైయర్‌ను ప్రారంభించండి</translation>
 <translation id="7335974957018254119">వీటికి స్పెల్ చెక్‌ను ఉపయోగించు</translation>
-<translation id="7336799713063880535">నోటిఫికేషన్‌ల బ్లాక్</translation>
+<translation id="7336799713063880535">నోటిఫి. బ్లాక్‌డ్</translation>
 <translation id="7338630283264858612">పరికరం క్రమ సంఖ్య చెల్లదు.</translation>
 <translation id="7339763383339757376">PKCS #7, ఒకే సర్టిఫికెట్</translation>
 <translation id="7339785458027436441">టైప్ చేసేటప్పుడు స్పెల్ చెక్ చేయి</translation>
@@ -5300,7 +5299,7 @@
 <translation id="8828933418460119530">DNS పేరు</translation>
 <translation id="883062543841130884">ప్రత్యామ్నాయాలు</translation>
 <translation id="8830796635868321089">ప్రస్తుత ప్రాక్సీ సెట్టింగ్‌లను ఉపయోగించి అప్‌‌డేట్‌ను తనిఖీ చేయడం విఫలమైంది. దయచేసి మీ <ph name="PROXY_SETTINGS_LINK_START" />ప్రాక్సీ సెట్టింగ్‌ల<ph name="PROXY_SETTINGS_LINK_END" />ను సర్దుబాటు చేయండి.</translation>
-<translation id="8831140208248705279">మీ <ph name="DEVICE_TYPE" />, Android ఫోన్ కలిస్తే అవి మెరుగ్గా పని చేస్తాయి. వాటిని కనెక్ట్ చేశాక, మీ కంప్యూటర్ నుండి వచన సందేశాలను పంపండి, మీ ఇంటర్నెట్ కనెక్షన్‌ను షేర్ చేయండి, అలాగే మీ ఫోన్‌తో మీ <ph name="DEVICE_TYPE" />ను అన్‌లాక్ చేయండి.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
+<translation id="8831140208248705279">మీ <ph name="DEVICE_TYPE" />, Android ఫోన్ కలిస్తే అవి మెరుగ్గా పని చేస్తాయి. వాటిని కనెక్ట్ చేశాక, మీ కంప్యూటర్ నుండి వచన సందేశాలను పంపవచ్చు, మీ ఇంటర్నెట్ కనెక్షన్‌ను షేర్ చేయవచ్చు, అలాగే మీ ఫోన్‌తో మీ <ph name="DEVICE_TYPE" />ను అన్‌లాక్ చేయవచ్చు.<ph name="FOOTNOTE_POINTER" /> <ph name="LINK_BEGIN" />మరింత తెలుసుకోండి<ph name="LINK_END" /></translation>
 <translation id="8831664945713891930">ఎక్స్‌టెన్షన్‌ల సెట్టింగ్‌లను తెరవండి</translation>
 <translation id="8834039744648160717">నెట్‌వర్క్ కాన్ఫిగరేషన్‌ను <ph name="USER_EMAIL" /> నియంత్రిస్తున్నారు.</translation>
 <translation id="8838770651474809439">హాంబర్గర్</translation>
diff --git a/chrome/app/resources/generated_resources_th.xtb b/chrome/app/resources/generated_resources_th.xtb
index d3776f4..bfdf93d 100644
--- a/chrome/app/resources/generated_resources_th.xtb
+++ b/chrome/app/resources/generated_resources_th.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">โปรดป้อน URL ที่สั้นกว่านี้</translation>
 <translation id="2588636910004461974">อุปกรณ์จาก <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">ค้นหาด้วย Google หรือพิมพ์ URL</translation>
-<translation id="2597521610396315071">เพิ่มการควบคุมดูแล</translation>
 <translation id="2603115962224169880">ล้างข้อมูลในคอมพิวเตอร์</translation>
 <translation id="2603463522847370204">เปิดใน&amp;หน้าต่างที่ไม่ระบุตัวตน</translation>
 <translation id="2604255671529671813">ข้อผิดพลาดในการเชื่อมต่อเครือข่าย</translation>
diff --git a/chrome/app/resources/generated_resources_tr.xtb b/chrome/app/resources/generated_resources_tr.xtb
index 829bb109..882ca97 100644
--- a/chrome/app/resources/generated_resources_tr.xtb
+++ b/chrome/app/resources/generated_resources_tr.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Lütfen daha kısa bir URL girin</translation>
 <translation id="2588636910004461974"><ph name="VENDOR_NAME" /> tedarikçisinin cihazları</translation>
 <translation id="2594999711683503743">Google'da arayın veya URL'yi yazın</translation>
-<translation id="2597521610396315071">Gözetim Ekleme</translation>
 <translation id="2603115962224169880">Bilgisayarı temizleme</translation>
 <translation id="2603463522847370204">&amp;Gizli pencerede aç</translation>
 <translation id="2604255671529671813">Ağ bağlantısı hatası</translation>
diff --git a/chrome/app/resources/generated_resources_uk.xtb b/chrome/app/resources/generated_resources_uk.xtb
index 75374124b..ab8f81d 100644
--- a/chrome/app/resources/generated_resources_uk.xtb
+++ b/chrome/app/resources/generated_resources_uk.xtb
@@ -1101,7 +1101,6 @@
 <translation id="2586672484245266891">Введіть коротшу URL-адресу</translation>
 <translation id="2588636910004461974">Пристрої від <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Пошукайте в Google або введіть URL-адресу</translation>
-<translation id="2597521610396315071">Увімкнути батьківський контроль</translation>
 <translation id="2603115962224169880">Очистити комп’ютер</translation>
 <translation id="2603463522847370204">Відкрити в &amp;анонімному вікні</translation>
 <translation id="2604255671529671813">Помилка з’єднання з мережею</translation>
diff --git a/chrome/app/resources/generated_resources_vi.xtb b/chrome/app/resources/generated_resources_vi.xtb
index aae0f0f..6e30453 100644
--- a/chrome/app/resources/generated_resources_vi.xtb
+++ b/chrome/app/resources/generated_resources_vi.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">Khóa bảo mật đã bị khóa do bạn nhập sai mã PIN quá nhiều lần. Để mở khóa, hãy rút ra và cắm lại.</translation>
 <translation id="1137673463384776352">Mở liên kết trong <ph name="APP" /></translation>
 <translation id="1140351953533677694">Truy cập thiết bị tuần tự và Bluetooth của bạn</translation>
+<translation id="114036956334641753">Âm thanh và phụ đề</translation>
 <translation id="1140610710803014750">Để sử dụng dấu trang trên tất cả các thiết bị của bạn, hãy đăng nhập và bật đồng bộ hóa.</translation>
 <translation id="1140746652461896221">Chặn nội dung trên bất cứ trang nào mà bạn truy cập</translation>
 <translation id="1143142264369994168">Người ký Chứng chỉ</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">Mạng đã biết</translation>
 <translation id="123578888592755962">Đĩa đầy</translation>
 <translation id="1238191093934674082">Open VPN</translation>
+<translation id="1239594683407221485">Khám phá nội dung của thiết bị trong ứng dụng Files.</translation>
 <translation id="124116460088058876">Ngôn ngữ khác</translation>
 <translation id="1241753985463165747">Đọc và thay đổi tất cả dữ liệu của bạn trên trang web hiện tại khi được gọi ra</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> muốn đặt lại cài đặt của bạn.</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">Internet đã bị ngắt kết nối. Hãy kiểm tra kết nối Internet của bạn và thử lại.</translation>
 <translation id="1463112138205428654">Chương trình Bảo vệ nâng cao đã chặn <ph name="FILE_NAME" />.</translation>
 <translation id="1464258312790801189">Tài khoản của bạn</translation>
+<translation id="1464781208867302907">Để xem các tùy chọn của thiết bị, hãy chuyển đến phần Cài đặt.</translation>
 <translation id="1465176863081977902">S&amp;ao chép địa chỉ âm thanh</translation>
 <translation id="1465827627707997754">Lát pizza</translation>
 <translation id="1468571364034902819">Không thể dùng hồ sơ này</translation>
@@ -744,6 +747,7 @@
 <translation id="2099686503067610784">Xóa chứng chỉ máy chủ "<ph name="CERTIFICATE_NAME" />"?</translation>
 <translation id="2100273922101894616">Tự động đăng nhập</translation>
 <translation id="2101225219012730419">Phiên bản:</translation>
+<translation id="2111670510994270194">Tab mới ở bên phải</translation>
 <translation id="21133533946938348">Ghim Tab</translation>
 <translation id="2113479184312716848">Mở &amp;tệp...</translation>
 <translation id="2113921862428609753">Quyền Truy cập Thông tin Tổ chức Cấp Chứng chỉ</translation>
@@ -1097,7 +1101,6 @@
 <translation id="2586672484245266891">Vui lòng nhập URL ngắn hơn</translation>
 <translation id="2588636910004461974">Thiết bị của <ph name="VENDOR_NAME" /></translation>
 <translation id="2594999711683503743">Tìm kiếm trên Google hoặc nhập URL</translation>
-<translation id="2597521610396315071">Thêm tính năng giám sát</translation>
 <translation id="2603115962224169880">Dọn dẹp máy tính</translation>
 <translation id="2603463522847370204">Mở trong cửa sổ ẩ&amp;n danh</translation>
 <translation id="2604255671529671813">Lỗi kết nối mạng</translation>
@@ -1790,6 +1793,7 @@
 <translation id="3630995161997703415">Thêm trang web này vào giá của bạn để sử dụng bất cứ lúc nào</translation>
 <translation id="3636096452488277381">Xin chào <ph name="USER_GIVEN_NAME" />!</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - còn lại <ph name="TIME" /></translation>
+<translation id="3637561406135221044">Đang quét tệp để tìm dữ liệu nhạy cảm...</translation>
 <translation id="3637682276779847508">Thẻ SIM của bạn sẽ bị vô hiệu hóa vĩnh viễn nếu bạn không thể nhập Khóa mở khóa mã PIN chính xác.</translation>
 <translation id="3640214691812501263">Thêm "<ph name="EXTENSION_NAME" />" cho <ph name="USER_NAME" />?</translation>
 <translation id="3640613767643722554">Hướng dẫn Trợ lý nhận dạng giọng nói của bạn</translation>
@@ -2228,6 +2232,7 @@
 <translation id="425573743389990240">Tốc độ phóng điện của pin tính bằng Watt (giá trị âm có nghĩa là đang sạc pin)</translation>
 <translation id="4256316378292851214">Lưu &amp;Video Dưới dạng...</translation>
 <translation id="4258348331913189841">Hệ thống tệp</translation>
+<translation id="4263223596040212967">Kiểm tra bố cục bàn phím rồi thử lại.</translation>
 <translation id="4263757076580287579">Đăng ký máy in đã bị hủy.</translation>
 <translation id="426564820080660648">Để kiểm tra các cập nhật, hãy sử dụng kết nối Ethernet, Wi-Fi hoặc dữ liệu di động.</translation>
 <translation id="4267953847983678297">Tự động kết nối với mạng di động</translation>
@@ -2323,6 +2328,7 @@
 <translation id="4416582610654027550">Nhập một URL hợp lệ</translation>
 <translation id="4419409365248380979">Luôn cho phép <ph name="HOST" /> đặt cookie</translation>
 <translation id="4419610272958564173">Thiết bị không xác định (Nhà cung cấp: <ph name="VENDOR_ID" />, Sản phẩm: <ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">Đã xảy ra lỗi khi kết nối. Vui lòng liên hệ với <ph name="CARRIER_NAME" /> để được trợ giúp.</translation>
 <translation id="4421932782753506458">Mèo con dễ thương</translation>
 <translation id="4423376891418188461">Khôi phục cài đặt</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />, quản trị viên của bạn yêu cầu bạn thay đổi mật khẩu của mình.</translation>
@@ -2998,6 +3004,7 @@
 <translation id="5457599981699367932">Duyệt với tư cách Khách</translation>
 <translation id="5457991019809708398">Bật, không chuyển vùng</translation>
 <translation id="5458998536542739734">Ghi chú trên màn hình khóa</translation>
+<translation id="546322474339998983">Dùng trong trình duyệt Chrome và Trình chạy <ph name="DEVICE_TYPE" /></translation>
 <translation id="5463231940765244860">Nhập</translation>
 <translation id="5463275305984126951">Chỉ mục của <ph name="LOCATION" /></translation>
 <translation id="5463856536939868464">Menu chứa các dấu trang bị ẩn</translation>
@@ -3295,6 +3302,7 @@
 <translation id="5869948122057593679">Đóng tất cả các cửa sổ</translation>
 <translation id="5870086504539785141">Đóng menu khả năng truy cập</translation>
 <translation id="5870155679953074650">Lỗi phần cứng</translation>
+<translation id="5876851302954717356">Tab mới ở bên phải</translation>
 <translation id="5877064549588274448">Kênh đã thay đổi. Hãy khởi động lại thiết bị để áp dụng thay đổi.</translation>
 <translation id="5877584842898320529">Máy in đã chọn không sử dụng được hoặc không được cài đặt chính xác. <ph name="BR" /> Hãy kiểm tra máy in hoặc thử chọn một máy in khác.</translation>
 <translation id="5882919346125742463">Mạng đã biết</translation>
@@ -4493,6 +4501,7 @@
 <translation id="7685049629764448582">Bộ nhớ cho Javascript</translation>
 <translation id="7685087414635069102">Cần có mã PIN</translation>
 <translation id="7685301384041462804">Nhớ kiểm tra xem trang web này có tin cậy không trước khi vào chế độ thực tế ảo.</translation>
+<translation id="768549422429443215">Thêm ngôn ngữ hoặc sắp xếp lại danh sách.</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">Xác nhận mật khẩu mới</translation>
 <translation id="7690378713476594306">Chọn từ danh sách</translation>
@@ -4554,6 +4563,7 @@
 <translation id="7773726648746946405">Bộ nhớ phiên</translation>
 <translation id="7774365994322694683">Chim</translation>
 <translation id="7776701556330691704">Không tìm thấy giọng nói nào</translation>
+<translation id="7780252971640011240">Đã xảy ra lỗi khi kết nối. Vui lòng liên hệ với nhà mạng để được trợ giúp.</translation>
 <translation id="7781335840981796660">Tất cả tài khoản người dùng và dữ liệu trên máy đều sẽ bị xóa.</translation>
 <translation id="7782102568078991263">Không có đề xuất nào khác từ Google</translation>
 <translation id="7782717250816686129">Lưu trữ dữ liệu liên tục trên màn hình đăng nhập và đưa thông tin xác thực vào phiên.</translation>
diff --git a/chrome/app/resources/generated_resources_zh-CN.xtb b/chrome/app/resources/generated_resources_zh-CN.xtb
index ae60477a..52a8329 100644
--- a/chrome/app/resources/generated_resources_zh-CN.xtb
+++ b/chrome/app/resources/generated_resources_zh-CN.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">此安全密钥已被锁定,因为您输错 PIN 码的次数过多。要解锁此密钥,请先将其拔出,然后再重新插入。</translation>
 <translation id="1137673463384776352">在<ph name="APP" />中打开链接</translation>
 <translation id="1140351953533677694">访问您的蓝牙和串行设备</translation>
+<translation id="114036956334641753">音频和字幕</translation>
 <translation id="1140610710803014750">要想将您的书签同步到您的所有设备上,请登录并开启同步功能。</translation>
 <translation id="1140746652461896221">屏蔽您访问的任意网页上的内容</translation>
 <translation id="1143142264369994168">证书签名人</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">已知网络</translation>
 <translation id="123578888592755962">磁盘已满</translation>
 <translation id="1238191093934674082">Open VPN</translation>
+<translation id="1239594683407221485">在“文件”应用中浏览此设备上的内容。</translation>
 <translation id="124116460088058876">更多语言</translation>
 <translation id="1241753985463165747">调用时可读取和更改您在当前网站上的所有数据</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" />要重置您的设置。</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">互联网连接已断开。请检查您的互联网连接并重试。</translation>
 <translation id="1463112138205428654"><ph name="FILE_NAME" /> 已被高级保护功能屏蔽。</translation>
 <translation id="1464258312790801189">您的帐号</translation>
+<translation id="1464781208867302907">若想指定设备偏好设置,请转到“设置”页面。</translation>
 <translation id="1465176863081977902">复制音频地址(&amp;O)</translation>
 <translation id="1465827627707997754">披萨片</translation>
 <translation id="1468571364034902819">无法使用这份个人资料</translation>
@@ -741,6 +744,7 @@
 <translation id="2099686503067610784">要删除服务器证书“<ph name="CERTIFICATE_NAME" />”吗?</translation>
 <translation id="2100273922101894616">自动登录</translation>
 <translation id="2101225219012730419">版本:</translation>
+<translation id="2111670510994270194">在右侧新增标签页</translation>
 <translation id="21133533946938348">固定标签页</translation>
 <translation id="2113479184312716848">打开文件(&amp;F)...</translation>
 <translation id="2113921862428609753">授权中心信息访问权限</translation>
@@ -1093,7 +1097,6 @@
 <translation id="2586672484245266891">请输入一个较短的网址</translation>
 <translation id="2588636910004461974">来自<ph name="VENDOR_NAME" />的设备</translation>
 <translation id="2594999711683503743">使用 Google 执行搜索,或者输入网址</translation>
-<translation id="2597521610396315071">添加监管设置</translation>
 <translation id="2603115962224169880">清理计算机</translation>
 <translation id="2603463522847370204">在隐身窗口中打开(&amp;I)</translation>
 <translation id="2604255671529671813">网络连接错误</translation>
@@ -1786,6 +1789,7 @@
 <translation id="3630995161997703415">请将此网站添加到您的任务栏中,以便随时使用</translation>
 <translation id="3636096452488277381"><ph name="USER_GIVEN_NAME" />,您好!</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - 还可使用 <ph name="TIME" /></translation>
+<translation id="3637561406135221044">正在扫描文件以检查其中是否含有敏感数据…</translation>
 <translation id="3637682276779847508">如果您无法输入正确的 PIN 码解锁密钥,您的 SIM 卡将被永久停用。</translation>
 <translation id="3640214691812501263">要为<ph name="USER_NAME" />添加“<ph name="EXTENSION_NAME" />”吗?</translation>
 <translation id="3640613767643722554">训练 Google 助理识别您的声音</translation>
@@ -2223,6 +2227,7 @@
 <translation id="425573743389990240">电池放电率(单位为瓦,负值表示电池正在充电)</translation>
 <translation id="4256316378292851214">视频存储为(&amp;V)...</translation>
 <translation id="4258348331913189841">文件系统</translation>
+<translation id="4263223596040212967">请检查键盘布局,然后重试。</translation>
 <translation id="4263757076580287579">已取消注册打印机。</translation>
 <translation id="426564820080660648">要检查是否有更新,请使用以太网、WLAN 或移动数据。</translation>
 <translation id="4267953847983678297">自动连接到移动网络</translation>
@@ -2318,6 +2323,7 @@
 <translation id="4416582610654027550">请输入一个有效网址</translation>
 <translation id="4419409365248380979">总是允许 <ph name="HOST" /> 设置 Cookie</translation>
 <translation id="4419610272958564173">未知设备(供应商:<ph name="VENDOR_ID" />,产品:<ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">连接时遇到问题。请与<ph name="CARRIER_NAME" />联系以获取帮助。</translation>
 <translation id="4421932782753506458">猫咪</translation>
 <translation id="4423376891418188461">还原设置</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />,您的管理员要求您更改密码。</translation>
@@ -2993,6 +2999,7 @@
 <translation id="5457599981699367932">以访客身份浏览</translation>
 <translation id="5457991019809708398">已启用,未使用漫游服务</translation>
 <translation id="5458998536542739734">锁定屏幕备注</translation>
+<translation id="546322474339998983">由 Chrome 浏览器和 <ph name="DEVICE_TYPE" /> 启动器使用</translation>
 <translation id="5463231940765244860">输入</translation>
 <translation id="5463275305984126951"><ph name="LOCATION" /> 的索引</translation>
 <translation id="5463856536939868464">包含隐藏书签的菜单</translation>
@@ -3290,6 +3297,7 @@
 <translation id="5869948122057593679">关闭您的所有窗口</translation>
 <translation id="5870086504539785141">关闭辅助功能菜单</translation>
 <translation id="5870155679953074650">硬故障数</translation>
+<translation id="5876851302954717356">在右侧新增标签页</translation>
 <translation id="5877064549588274448">版本已更改。请重新启动设备来应用这些变更。</translation>
 <translation id="5877584842898320529">所选打印机不可用或未正确安装。<ph name="BR" />请检查打印机,或尝试另选一台打印机。</translation>
 <translation id="5882919346125742463">已知网络</translation>
@@ -4488,6 +4496,7 @@
 <translation id="7685049629764448582">JavaScript 使用的内存</translation>
 <translation id="7685087414635069102">必须输入 PIN 码</translation>
 <translation id="7685301384041462804">请确保您信任此网站,然后再进入 VR 环境。</translation>
+<translation id="768549422429443215">添加语言或将列表中的语言重新排列。</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">再次输入新密码</translation>
 <translation id="7690378713476594306">从列表中选择</translation>
@@ -4549,6 +4558,7 @@
 <translation id="7773726648746946405">会话存储</translation>
 <translation id="7774365994322694683">鸟</translation>
 <translation id="7776701556330691704">未找到任何语音</translation>
+<translation id="7780252971640011240">连接时遇到问题。请与您的运营商联系以获取帮助。</translation>
 <translation id="7781335840981796660">所有用户帐号和本地数据都将会移除。</translation>
 <translation id="7782102568078991263">Google 无法提供其他任何建议</translation>
 <translation id="7782717250816686129">存储登录屏幕上的持久性数据,并将凭据插入到会话中。</translation>
diff --git a/chrome/app/resources/generated_resources_zh-TW.xtb b/chrome/app/resources/generated_resources_zh-TW.xtb
index 70d6023..c168050 100644
--- a/chrome/app/resources/generated_resources_zh-TW.xtb
+++ b/chrome/app/resources/generated_resources_zh-TW.xtb
@@ -96,6 +96,7 @@
 <translation id="1136712381129578788">由於你輸入太多次錯誤的 PIN 碼,因此安全金鑰已遭到鎖定。如要解鎖,請移除安全金鑰後重新插入。</translation>
 <translation id="1137673463384776352">在「<ph name="APP" />」中開啟連結</translation>
 <translation id="1140351953533677694">存取你的藍牙和序列裝置</translation>
+<translation id="114036956334641753">音訊和字幕</translation>
 <translation id="1140610710803014750">如要將書籤同步到所有裝置,請登入並開啟同步處理功能。</translation>
 <translation id="1140746652461896221">封鎖你造訪的任何網頁所含內容</translation>
 <translation id="1143142264369994168">憑證簽署者</translation>
@@ -173,6 +174,7 @@
 <translation id="1235458158152011030">已知網路</translation>
 <translation id="123578888592755962">磁碟空間已滿</translation>
 <translation id="1238191093934674082">Open VPN</translation>
+<translation id="1239594683407221485">在「檔案」應用程式中探索裝置內容。</translation>
 <translation id="124116460088058876">更多語言</translation>
 <translation id="1241753985463165747">叫用時讀取及變更你在目前網站上的所有資料</translation>
 <translation id="1242633766021457174"><ph name="THIRD_PARTY_TOOL_NAME" /> 要求重設您的設定。</translation>
@@ -312,6 +314,7 @@
 <translation id="146220085323579959">網際網路連線已中斷。請檢查你的網際網路連線,然後再試一次。</translation>
 <translation id="1463112138205428654">進階保護功能已封鎖 <ph name="FILE_NAME" />。</translation>
 <translation id="1464258312790801189">你的帳戶</translation>
+<translation id="1464781208867302907">如要開啟裝置偏好設定選項,請前往「設定」。</translation>
 <translation id="1465176863081977902">複製音訊位址(&amp;O)</translation>
 <translation id="1465827627707997754">披薩切片</translation>
 <translation id="1468571364034902819">無法使用這個設定檔</translation>
@@ -744,6 +747,7 @@
 <translation id="2099686503067610784">要刪除伺服器憑證「<ph name="CERTIFICATE_NAME" />」嗎?</translation>
 <translation id="2100273922101894616">自動登入</translation>
 <translation id="2101225219012730419">版本:</translation>
+<translation id="2111670510994270194">在右側新增分頁</translation>
 <translation id="21133533946938348">固定分頁</translation>
 <translation id="2113479184312716848">開啟檔案(&amp;F)...</translation>
 <translation id="2113921862428609753">授權單位資訊存取</translation>
@@ -1096,7 +1100,6 @@
 <translation id="2586672484245266891">請輸入較短的網址</translation>
 <translation id="2588636910004461974">來自 <ph name="VENDOR_NAME" /> 的裝置</translation>
 <translation id="2594999711683503743">搜尋 Google 或輸入網址</translation>
-<translation id="2597521610396315071">新增監督功能</translation>
 <translation id="2603115962224169880">清理電腦</translation>
 <translation id="2603463522847370204">在無痕式視窗中開啟(&amp;I)</translation>
 <translation id="2604255671529671813">網路連線錯誤</translation>
@@ -1789,6 +1792,7 @@
 <translation id="3630995161997703415">請將這個網站加入檔案櫃,以便隨時使用</translation>
 <translation id="3636096452488277381"><ph name="USER_GIVEN_NAME" />,你好!</translation>
 <translation id="3636766455281737684"><ph name="PERCENTAGE" />% - 還可以使用 <ph name="TIME" /></translation>
+<translation id="3637561406135221044">正在掃描檔案中的機密資料...</translation>
 <translation id="3637682276779847508">如果無法輸入正確的 PIN 解鎖金鑰,SIM 卡會遭到永久停用。</translation>
 <translation id="3640214691812501263">為<ph name="USER_NAME" />新增「<ph name="EXTENSION_NAME" />」?</translation>
 <translation id="3640613767643722554">訓練 Google 助理辨識你的聲音</translation>
@@ -1876,7 +1880,7 @@
 <translation id="3748026146096797577">尚未連線</translation>
 <translation id="3752582316358263300">確定...</translation>
 <translation id="3752673729237782832">我的裝置</translation>
-<translation id="3753033997400164841">只要儲存一次,即可在所有裝置上使用</translation>
+<translation id="3753033997400164841">只要儲存一次,即可在所有裝置上使用。</translation>
 <translation id="3755411799582650620">你的 <ph name="PHONE_NAME" /> 現在也可以解鎖這台 <ph name="DEVICE_TYPE" />。</translation>
 <translation id="375636864092143889">網站正在使用你的麥克風</translation>
 <translation id="3757733214359997190">找不到任何網站</translation>
@@ -2226,6 +2230,7 @@
 <translation id="425573743389990240">電池放電速率 (瓦特) (如為負值,表示電池正在充電)</translation>
 <translation id="4256316378292851214">另存影片(&amp;V)...</translation>
 <translation id="4258348331913189841">檔案系統</translation>
+<translation id="4263223596040212967">請檢查你的鍵盤配置,然後再試一次。</translation>
 <translation id="4263757076580287579">已取消註冊印表機。</translation>
 <translation id="426564820080660648">如要檢查更新,請使用 Wi-Fi 或行動數據。</translation>
 <translation id="4267953847983678297">自動連線至行動數據網路</translation>
@@ -2321,6 +2326,7 @@
 <translation id="4416582610654027550">請輸入有效的網址</translation>
 <translation id="4419409365248380979">一律允許 <ph name="HOST" /> 設定 Coockie</translation>
 <translation id="4419610272958564173">不明的裝置 (製造商:<ph name="VENDOR_ID" />,產品:<ph name="PRODUCT_ID" />)</translation>
+<translation id="4421167684395067330">連線發生問題。請與「<ph name="CARRIER_NAME" />」聯絡以尋求協助。</translation>
 <translation id="4421932782753506458">毛毛</translation>
 <translation id="4423376891418188461">還原設定</translation>
 <translation id="442397852638519243"><ph name="USER_NAME" />,管理員要求你變更密碼。</translation>
@@ -2996,6 +3002,7 @@
 <translation id="5457599981699367932">以訪客身分瀏覽</translation>
 <translation id="5457991019809708398">已啟用,未使用漫遊服務</translation>
 <translation id="5458998536542739734">螢幕鎖定時的記事設定</translation>
+<translation id="546322474339998983">由 Chrome 瀏覽器和 <ph name="DEVICE_TYPE" /> 啟動器使用</translation>
 <translation id="5463231940765244860">輸入</translation>
 <translation id="5463275305984126951"><ph name="LOCATION" /> 的索引</translation>
 <translation id="5463856536939868464">選單包含隱藏的書籤</translation>
@@ -3293,6 +3300,7 @@
 <translation id="5869948122057593679">關閉所有視窗</translation>
 <translation id="5870086504539785141">關閉無障礙選單</translation>
 <translation id="5870155679953074650">硬性錯誤數</translation>
+<translation id="5876851302954717356">在右側新增分頁</translation>
 <translation id="5877064549588274448">版本已變更。請重新啟動裝置以套用變更。</translation>
 <translation id="5877584842898320529">選取的印表機無法使用或未正確安裝。<ph name="BR" />請檢查你的印表機,或改選其他印表機。</translation>
 <translation id="5882919346125742463">已知網路</translation>
@@ -4491,6 +4499,7 @@
 <translation id="7685049629764448582">JavaScript 記憶體使用量</translation>
 <translation id="7685087414635069102">請輸入 PIN 碼</translation>
 <translation id="7685301384041462804">進入 VR 模式之前,請確認你信任這個網站。</translation>
+<translation id="768549422429443215">新增語言或重新排列清單。</translation>
 <translation id="7686938547853266130"><ph name="FRIENDLY_NAME" /> (<ph name="DEVICE_PATH" />)</translation>
 <translation id="7690294790491645610">確認新密碼</translation>
 <translation id="7690378713476594306">從清單中選擇</translation>
@@ -4552,6 +4561,7 @@
 <translation id="7773726648746946405">工作階段儲存空間</translation>
 <translation id="7774365994322694683">鳥</translation>
 <translation id="7776701556330691704">找不到語音</translation>
+<translation id="7780252971640011240">連線發生問題。請與你的電信業者聯絡以尋求協助。</translation>
 <translation id="7781335840981796660">系統將移除所有使用者帳戶和本機資料。</translation>
 <translation id="7782102568078991263">沒有更多來自 Google 的建議</translation>
 <translation id="7782717250816686129">儲存登入畫面中的永久資料,並在工作階段中置入憑證。</translation>
diff --git a/chrome/app/resources/google_chrome_strings_am.xtb b/chrome/app/resources/google_chrome_strings_am.xtb
index 4512038..2f34fcc 100644
--- a/chrome/app/resources/google_chrome_strings_am.xtb
+++ b/chrome/app/resources/google_chrome_strings_am.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chromeን ማዘመን አልተቻለም</translation>
 <translation id="1154147086299354128">&amp;በChrome ውስጥ ክፈት</translation>
 <translation id="123620459398936149">Chrome OS ውሂብዎን ሊያመሳስል አልቻለም። እባክዎ የማመሳሰያ ይለፍ ሐረግዎን ያዘምኑት።</translation>
-<translation id="127345590676626841">Chrome በራስ-ሰር ስለሚዘምን ሁልጊዜ ትኩሱ ስሪት ነው የሚኖርዎ። ይህ ውርድ ሲጠናቀቅ Chrome ዳግም ይጀምርና እርስዎም ስራዎን ይቀጥላሉ።</translation>
 <translation id="1302523850133262269">እባክዎ Chrome የቅርብ ጊዜዎቹን ዝማኔዎች እስኪጭን ድረስ ይጠብቁ።</translation>
 <translation id="137466361146087520">Google Chrome ቅድመ-ይሁነታ</translation>
 <translation id="1393853151966637042">ስለ Chrome አጠቃቀም ላይ እገዛን ያግኙ</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">የChrome OS ውል</translation>
 <translation id="7419046106786626209">ማመሳሰል ለጎራዎ ስለማይገኝ Chrome OS ውሂብዎን ማመሳሰል አልቻለም።</translation>
 <translation id="7459554271817304652">ግላዊነት የተላበሰው የአሳሽ ባህሪዎችዎ ድር ላይ ለማስቀመጥና ከዚያ Google Chrome ካለው ማንኛውም ኮምፒውተር ለመድረስ አመሳስልን ያዋቅሩ።</translation>
-<translation id="7473136999113284234">Chrome በራስ-ሰር ይዘመናል፣ ስለዚህ ሁልጊዜ አዲሱ ስሪት ይኖርዎታል።</translation>
 <translation id="7486227612705979895">Chrome የእርስዎን Drive በአድራሻ አሞሌ ውስጥ ጥቆማ ሐሳቦችን ይደርሳል</translation>
 <translation id="7531671357096394523">ሁሉንም የChrome ቅጂዎች ያቋርጡ።</translation>
 <translation id="7535429826459677826">Google Chrome ገንቢ</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ar.xtb b/chrome/app/resources/google_chrome_strings_ar.xtb
index 177abb3..73bccff 100644
--- a/chrome/app/resources/google_chrome_strings_ar.xtb
+++ b/chrome/app/resources/google_chrome_strings_ar.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">‏تعذّر تحديث Chrome</translation>
 <translation id="1154147086299354128">‏&amp;فتح في Chrome</translation>
 <translation id="123620459398936149">‏تعذر على نظام التشغيل Chrome مزامنة البيانات. يُرجى تحديث عبارة مرور المزامنة.</translation>
-<translation id="127345590676626841">‏يجري تحديث Chrome تلقائيًا بحيث يكون لديك أحدث إصدار. عند اكتمال هذا التحميل، ستتم إعادة تشغيل Chrome وستبدأ العمل.</translation>
 <translation id="1302523850133262269">‏يُرجى الانتظار لحين تثبيت Chrome لآخر تحديثات النظام.</translation>
 <translation id="137466361146087520">‏الإصدار التجريبي من Google Chrome</translation>
 <translation id="1393853151966637042">‏الحصول على مساعدة بشأن استخدام Chrome</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">‏بنود نظام التشغيل Chrome</translation>
 <translation id="7419046106786626209">‏تعذر على نظام التشغيل Chrome مزامنة البيانات نظرًا لأن المزامنة غير متاحة في نطاقك.</translation>
 <translation id="7459554271817304652">‏يمكنك إعداد المزامنة لحفظ ميزات المتصفح المخصصة على الويب والدخول إليها من Google Chrome على أي كمبيوتر.</translation>
-<translation id="7473136999113284234">‏يجري تحديث Chrome تلقائيًا بحيث يكون لديك أحدث إصدار.</translation>
 <translation id="7486227612705979895">‏سيصل Chrome إلى Drive لإنشاء الاقتراحات في شريط العناوين.</translation>
 <translation id="7531671357096394523">‏الخروج من جميع نُسخ Chrome</translation>
 <translation id="7535429826459677826">‏إصدار مطوري البرامج من Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bg.xtb b/chrome/app/resources/google_chrome_strings_bg.xtb
index 23d9cbf..a6d739b 100644
--- a/chrome/app/resources/google_chrome_strings_bg.xtb
+++ b/chrome/app/resources/google_chrome_strings_bg.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome не може да се актуализира</translation>
 <translation id="1154147086299354128">&amp;Отваряне в Chrome</translation>
 <translation id="123620459398936149">Chrome OS не можа да синхронизира данните ви. Моля, актуализирайте пропуска си за синхронизиране.</translation>
-<translation id="127345590676626841">Chrome се актуализира автоматично, така че винаги да имате най-новата версия. Когато това изтегляне завърши, браузърът ще се рестартира и ще можете да започнете работа.</translation>
 <translation id="1302523850133262269">Моля, изчакайте, докато Chrome инсталира най-новите системни актуализации.</translation>
 <translation id="137466361146087520">Google Chrome бета</translation>
 <translation id="1393853151966637042">Получаване на помощ за използването на Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Общи условия на Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS не можа да синхронизира данните ви, защото тази функция не е налице за домейна ви.</translation>
 <translation id="7459554271817304652">Настройте синхронизирането, за да запазите онлайн персонализираните функции на браузъра си и да осъществявате достъп до тях от Google Chrome на всеки компютър.</translation>
-<translation id="7473136999113284234">Chrome се актуализира автоматично, така че винаги да имате най-новата версия.</translation>
 <translation id="7486227612705979895">Chrome ще осъществява достъп до хранилището ви в Диск, за да извежда предложения в адресната лента</translation>
 <translation id="7531671357096394523">Затваряне на всички копия на Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_bn.xtb b/chrome/app/resources/google_chrome_strings_bn.xtb
index d09f779..8a9d6a5 100644
--- a/chrome/app/resources/google_chrome_strings_bn.xtb
+++ b/chrome/app/resources/google_chrome_strings_bn.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome আপডেট করা যাচ্ছে না</translation>
 <translation id="1154147086299354128">&amp;Chrome এ খুলুন</translation>
 <translation id="123620459398936149">Chrome OS আপনার ডেটা সিঙ্ক করতে পারেনি৷ দয়া করে আপনার সিঙ্ক পাসফ্রেজ আপডেট করুন৷</translation>
-<translation id="127345590676626841">Chrome অটোমেটিক আপডেট হয় তাই আপনার কাছে সর্বদা নবীনতম ভার্সনটি থাকে৷ এই ডাউনলোডটি সম্পূর্ণ হলে, Chrome পুনরায় চালু হবে এবং আপনি আবার আগের মতো Chrome ব্যবহার করতে পারবেন৷</translation>
 <translation id="1302523850133262269">Chrome যখন সাম্প্রতিক সিস্টেম আপডেটগুলিকে ইনস্টল করে তখন দয়া করে অপেক্ষা করুন৷</translation>
 <translation id="137466361146087520">Google Chrome বিটা</translation>
 <translation id="1393853151966637042">Chrome ব্যবহার করে সাহায্য নিন</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Chrome OS শর্তাবলী</translation>
 <translation id="7419046106786626209">আপনার ডোমেনে সিঙ্ক উপলভ্য না থাকার কারণে Chrome OS আপনার ডেটা সিঙ্ক করতে পারেনি৷</translation>
 <translation id="7459554271817304652">ওয়েবে আপনার নিজের মতো করে ব্রাউজার ফিচার সেভ করতে এবং যেকোন কম্পিউটারে Google Chrome থেকে সাইন-ইন সিঙ্ক সেট-আপ করুন৷</translation>
-<translation id="7473136999113284234">Chrome অটোমেটিক আপডেট হয় তাই আপনি সবসময় নবীনতম ভার্সনটি পান।</translation>
 <translation id="7486227612705979895">অ্যাড্রেস বারে সাজেশন দেওয়ার জন্য Chrome আপনার ড্রাইভ অ্যাক্সেস করবে</translation>
 <translation id="7531671357096394523">Chrome-এর সবকটি কপি বন্ধ করুন।</translation>
 <translation id="7535429826459677826">Google Chrome ডেভেলপার</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ca.xtb b/chrome/app/resources/google_chrome_strings_ca.xtb
index 36f34eb..ac3bc7c 100644
--- a/chrome/app/resources/google_chrome_strings_ca.xtb
+++ b/chrome/app/resources/google_chrome_strings_ca.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome no es pot actualitzar</translation>
 <translation id="1154147086299354128">&amp;Obre a Chrome</translation>
 <translation id="123620459398936149">Chrome OS no ha pogut sincronitzar les vostres dades. Actualitzeu la contrasenya de sincronització.</translation>
-<translation id="127345590676626841">Chrome s'actualitza automàticament perquè en tingueu sempre la versió més recent. Quan es completi aquesta baixada, Chrome es reiniciarà i ja el podreu utilitzar.</translation>
 <translation id="1302523850133262269">Espereu mentre Chrome instal·la les actualitzacions més recents del sistema.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obtén ajuda per fer servir Chrome</translation>
@@ -128,7 +127,7 @@
 <translation id="4458462641685292929">Hi ha una altra operació en curs a Google Chrome. Torna-ho a provar més tard.</translation>
 <translation id="4480040274068703980">Chrome OS no ha pogut sincronitzar les vostres dades a causa d'un error en iniciar la sessió.</translation>
 <translation id="4561051373932531560">Google Chrome us permet fer clic en un número de telèfon al web i trucar-hi amb Skype!</translation>
-<translation id="4567424176335768812">Heu iniciat la sessió com a <ph name="USER_EMAIL_ADDRESS" />. Ja podeu accedir a les vostres adreces d'interès, al vostre historial i a altres paràmetres en tots els dispositius en què hàgiu iniciat la sessió.</translation>
+<translation id="4567424176335768812">Heu iniciat la sessió com a <ph name="USER_EMAIL_ADDRESS" />. Ja podeu accedir a les vostres adreces d'interès, al vostre historial i a altres paràmetres en tots els dispositius en què teniu la sessió iniciada.</translation>
 <translation id="4571503333518166079">Ves a la configuració de notificacions de Chrome</translation>
 <translation id="459622048091363950">Un cop Chrome tingui accés, els llocs web et podran demanar accés.</translation>
 <translation id="4600710005438004015">Chrome no s'ha pogut actualitzar a la darrera versió, així que no pots gaudir de les funcions noves ni de les correccions de seguretat.</translation>
@@ -212,7 +211,6 @@
 <translation id="7408085963519505752">Condicions de Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS no ha pogut sincronitzar les vostres dades perquè la sincronització no està disponible per al vostre domini.</translation>
 <translation id="7459554271817304652">Configureu la sincronització per desar al web les funcions personalitzades del navegador i per accedir-hi des de qualsevol ordinador mitjançant Google Chrome.</translation>
-<translation id="7473136999113284234">Chrome s'actualitza automàticament perquè en tingueu sempre la versió més recent.</translation>
 <translation id="7486227612705979895">Chrome accedirà a Drive per fer suggeriments a la barra d'adreces</translation>
 <translation id="7531671357096394523">Tanca totes les còpies de Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_cs.xtb b/chrome/app/resources/google_chrome_strings_cs.xtb
index 1562c2c..214a571 100644
--- a/chrome/app/resources/google_chrome_strings_cs.xtb
+++ b/chrome/app/resources/google_chrome_strings_cs.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chrome nelze aktualizovat</translation>
 <translation id="1154147086299354128">&amp;Otevřít v Chromu</translation>
 <translation id="123620459398936149">Chrome OS vaše data nemohl synchronizovat. Aktualizujte prosím heslovou frázi pro synchronizaci.</translation>
-<translation id="127345590676626841">Chrome se automaticky aktualizuje, abyste měli vždy nejaktuálnější verzi. Až toto stahování skončí, Chrome se restartuje a budete moci pokračovat.</translation>
 <translation id="1302523850133262269">Počkejte prosím, než Chrome nainstaluje nejnovější aktualizace systému.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Pomoc s používáním Chromu</translation>
@@ -220,7 +219,6 @@
 <translation id="7408085963519505752">Smluvní podmínky systému Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS nemohl synchronizovat vaše data, protože Synchronizace ve vaší doméně není k dispozici.</translation>
 <translation id="7459554271817304652">Chcete-li uložit personalizované funkce prohlížeče na web a získat k nim přístup z prohlížeče Google Chrome v libovolném prohlížeči, nastavte synchronizaci.</translation>
-<translation id="7473136999113284234">Chrome se automaticky aktualizuje, abyste měli vždy nejaktuálnější verzi.</translation>
 <translation id="7486227612705979895">Chrome bude za účelem zobrazování návrhů v adresním řádku číst váš obsah na Disku</translation>
 <translation id="7531671357096394523">Ukončete všechny kopie Chromu</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_da.xtb b/chrome/app/resources/google_chrome_strings_da.xtb
index 44522e89..5ecdb98 100644
--- a/chrome/app/resources/google_chrome_strings_da.xtb
+++ b/chrome/app/resources/google_chrome_strings_da.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome kan ikke opdateres</translation>
 <translation id="1154147086299354128">Åbn i Chr&amp;ome</translation>
 <translation id="123620459398936149">Chrome OS kunne ikke synkronisere dine data. Opdater din adgangssætning til synkronisering.</translation>
-<translation id="127345590676626841">Chrome opdateres automatisk, så du altid har den nyeste version. Når downloaden er fuldført, genstartes Chrome, og så er du godt på vej.</translation>
 <translation id="1302523850133262269">Vent, mens Chrome installerer de nyeste systemopdateringer.</translation>
 <translation id="137466361146087520">Google Chrome beta</translation>
 <translation id="1393853151966637042">Få hjælp til at bruge Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Vilkår for Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS kunne ikke synkronisere dine data, fordi synkronisering ikke er tilgængelig for dit domæne.</translation>
 <translation id="7459554271817304652">Konfigurer synkroniseringen til at gemme dine personlige browserfunktioner på nettet, og få adgang til dem i Google Chrome på en hvilken som helst computer.</translation>
-<translation id="7473136999113284234">Chrome opdateres automatisk, så du altid har den nyeste version.</translation>
 <translation id="7486227612705979895">Chrome har adgang til Drev, så der kan vises forslag i adresselinjen</translation>
 <translation id="7531671357096394523">Luk alle kopier af Chrome.</translation>
 <translation id="7535429826459677826">Udviklerversionen af Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_de.xtb b/chrome/app/resources/google_chrome_strings_de.xtb
index 3bdd1f6..0eae3ab 100644
--- a/chrome/app/resources/google_chrome_strings_de.xtb
+++ b/chrome/app/resources/google_chrome_strings_de.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome kann nicht aktualisiert werden</translation>
 <translation id="1154147086299354128">In Chr&amp;ome öffnen</translation>
 <translation id="123620459398936149">Chrome OS konnte Ihre Daten nicht synchronisieren. Bitte aktualisieren Sie Ihre Passphrase für die Synchronisierung.</translation>
-<translation id="127345590676626841">Chrome wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen. Nach Abschluss des Downloads wird Chrome neu gestartet und Sie können fortfahren.</translation>
 <translation id="1302523850133262269">Bitte warten Sie, bis die aktuellen Systemupdates von Chrome installiert wurden.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Hilfe für Chrome aufrufen</translation>
@@ -213,7 +212,6 @@
 <translation id="7408085963519505752">Chrome OS-Nutzungsbedingungen</translation>
 <translation id="7419046106786626209">Chrome OS konnte Ihre Daten nicht synchronisieren, da die Synchronisierung für Ihre Domain nicht verfügbar ist.</translation>
 <translation id="7459554271817304652">Richten Sie die Synchronisierung ein, um Ihre personalisierten Browserfunktionen online zu speichern und über Google Chrome auf jedem Computer darauf zuzugreifen.</translation>
-<translation id="7473136999113284234">Chrome wird automatisch aktualisiert, sodass Sie immer über die neueste Version verfügen.</translation>
 <translation id="7486227612705979895">Chrome greift auf Google Drive zu, um in der Adressleiste Vorschläge zu machen</translation>
 <translation id="7531671357096394523">Alle Instanzen von Chrome schließen.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_el.xtb b/chrome/app/resources/google_chrome_strings_el.xtb
index 313ed7a..4025559 100644
--- a/chrome/app/resources/google_chrome_strings_el.xtb
+++ b/chrome/app/resources/google_chrome_strings_el.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Δεν είναι δυνατή η ενημέρωση του Chrome</translation>
 <translation id="1154147086299354128">&amp;Άνοιγμα στο Chrome</translation>
 <translation id="123620459398936149">Το Chrome OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας. Ενημερώστε τη φράση πρόσβασης συγχρονισμού.</translation>
-<translation id="127345590676626841">Το Chrome ενημερώνεται αυτόματα, προκειμένου να έχετε πάντα στη διάθεσή σας τη νεότερη έκδοση. Όταν ολοκληρωθεί αυτή η λήψη, θα γίνει επανεκκίνηση του Chrome και θα είστε έτοιμοι.</translation>
 <translation id="1302523850133262269">Περιμένετε μέχρι να γίνει εγκατάσταση των πιο πρόσφατων ενημερώσεων συστήματος από το Chrome.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Λήψη βοήθειας σχετικά με τη χρήση του Chrome</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Όροι Chrome OS</translation>
 <translation id="7419046106786626209">Το Chrome OS δεν μπόρεσε να συγχρονίσει τα δεδομένα σας, επειδή ο συγχρονισμός δεν είναι διαθέσιμος για τον τομέα σας.</translation>
 <translation id="7459554271817304652">Ρυθμίστε τον συγχρονισμό για την αποθήκευση όλων των εξατομικευμένων λειτουργιών του προγράμματος περιήγησής σας στον ιστό και μεταβείτε σε αυτές από το Google Chrome μέσω οποιουδήποτε υπολογιστή.</translation>
-<translation id="7473136999113284234">Το Chrome ενημερώνεται αυτόματα, προκειμένου να έχετε πάντα στη διάθεσή σας τη νεότερη έκδοση.</translation>
 <translation id="7486227612705979895">Το Chrome θα αποκτήσει πρόσβαση στο Drive, για να κάνει προτάσεις στη γραμμή διευθύνσεων</translation>
 <translation id="7531671357096394523">Κλείστε όλα τα αντίγραφα του Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_en-GB.xtb b/chrome/app/resources/google_chrome_strings_en-GB.xtb
index db31baf5..9307377 100644
--- a/chrome/app/resources/google_chrome_strings_en-GB.xtb
+++ b/chrome/app/resources/google_chrome_strings_en-GB.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Can't update Chrome</translation>
 <translation id="1154147086299354128">&amp;Open in Chrome</translation>
 <translation id="123620459398936149">Chrome OS could not sync your data. Please update your Sync passphrase.</translation>
-<translation id="127345590676626841">Chrome updates automatically so that you always have the freshest version. When this download completes, Chrome will restart and you'll be on your way.</translation>
 <translation id="1302523850133262269">Please wait while Chrome installs the latest system updates.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Get help with using Chrome</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Chrome OS terms</translation>
 <translation id="7419046106786626209">Chrome OS could not sync your data because Sync is not available for your domain.</translation>
 <translation id="7459554271817304652">Set up Sync to save your personalised browser features to the web and access them from Google Chrome on any computer.</translation>
-<translation id="7473136999113284234">Chrome updates automatically so that you always have the freshest version.</translation>
 <translation id="7486227612705979895">Chrome will access your Drive to make suggestions in the address bar</translation>
 <translation id="7531671357096394523">Quit all copies of Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es-419.xtb b/chrome/app/resources/google_chrome_strings_es-419.xtb
index 543d60c0..b7902a0 100644
--- a/chrome/app/resources/google_chrome_strings_es-419.xtb
+++ b/chrome/app/resources/google_chrome_strings_es-419.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">No se puede actualizar Chrome</translation>
 <translation id="1154147086299354128">&amp;Abrir en Chrome</translation>
 <translation id="123620459398936149">El Sistema operativo Chrome no pudo sincronizar los datos. Actualiza la frase de contraseña de sincronización.</translation>
-<translation id="127345590676626841">Chrome se actualiza automáticamente para que siempre tengas la versión más reciente. Cuando se complete esta descarga, Chrome se reiniciará y podrás usarlo.</translation>
 <translation id="1302523850133262269">Espera mientras Chrome instala las últimas actualizaciones del sistema.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obtener ayuda para utilizar Chrome</translation>
@@ -215,14 +214,13 @@
 <translation id="7408085963519505752">Condiciones del Sistema operativo Chrome</translation>
 <translation id="7419046106786626209">El Sistema operativo Chrome no pudo sincronizar los datos porque la sincronización no está disponible para el dominio.</translation>
 <translation id="7459554271817304652">Configura la sincronización para guardar las funciones personalizadas de tu navegador en la Web y acceder a ellas desde Google Chrome en cualquier equipo.</translation>
-<translation id="7473136999113284234">Chrome se actualiza automáticamente para que siempre tengas la versión más reciente.</translation>
 <translation id="7486227612705979895">Chrome accederá a tus datos de Drive para hacer sugerencias en la barra de direcciones</translation>
 <translation id="7531671357096394523">Sal de todas las copias de Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
 <translation id="7589360514048265910">Esta computadora no recibirá más actualizaciones de Google Chrome porque Mac OS X 10.9 ya no es compatible.</translation>
 <translation id="7592736734348559088">Google Chrome no pudo sincronizar los datos porque los datos de acceso de la cuenta están obsoletos.</translation>
 <translation id="7626032353295482388">Te damos la bienvenida a Chrome</translation>
-<translation id="7629695634924605473">Chrome te informará si tus contraseñas corren se ven comprometidas</translation>
+<translation id="7629695634924605473">Chrome te informará si tus contraseñas se ven comprometidas</translation>
 <translation id="7641148173327520642">El administrador del sistema configuró Google Chrome de manera que se abriera <ph name="ALTERNATIVE_BROWSER_NAME" /> para acceder a <ph name="TARGET_URL_HOSTNAME" />.</translation>
 <translation id="7651907282515937834">Logotipo de Chrome Enterprise</translation>
 <translation id="7747138024166251722">El instalador no pudo crear un directorio temporal. Verifique si hay espacio disponible en el disco y cuenta con permiso para instalar software.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_es.xtb b/chrome/app/resources/google_chrome_strings_es.xtb
index 0355b1fc..bbfb608a 100644
--- a/chrome/app/resources/google_chrome_strings_es.xtb
+++ b/chrome/app/resources/google_chrome_strings_es.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">No se puede actualizar Chrome</translation>
 <translation id="1154147086299354128">&amp;Abrir en Chrome</translation>
 <translation id="123620459398936149">Chrome OS no ha podido sincronizar tus datos. Actualiza tu frase de contraseña de sincronización.</translation>
-<translation id="127345590676626841">Chrome se actualiza automáticamente para que siempre dispongas de la última versión. Cuando se complete la descarga, Chrome se reiniciará automáticamente.</translation>
 <translation id="1302523850133262269">Espera mientras Chrome instala las últimas actualizaciones del sistema.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obtener ayuda de Chrome</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Condiciones de Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS no ha podido sincronizar los datos porque la función de sincronización no está disponible para tu dominio.</translation>
 <translation id="7459554271817304652">Configura la sincronización para guardar las funciones personalizadas de tu navegador en la Web y acceder a ellas desde Google Chrome en cualquier ordenador.</translation>
-<translation id="7473136999113284234">Chrome se actualiza automáticamente para que siempre dispongas de la última versión.</translation>
 <translation id="7486227612705979895">Chrome accederá a tu Drive para mostrarte sugerencias en la barra de direcciones</translation>
 <translation id="7531671357096394523">Cierra todas las instancias de Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_et.xtb b/chrome/app/resources/google_chrome_strings_et.xtb
index 5cbbe1f..6a8d19a 100644
--- a/chrome/app/resources/google_chrome_strings_et.xtb
+++ b/chrome/app/resources/google_chrome_strings_et.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome'i ei saa värskendada</translation>
 <translation id="1154147086299354128">&amp;Ava Chrome'is</translation>
 <translation id="123620459398936149">Chrome OS ei saanud teie andmeid sünkroonida. Värskendage oma sünkroonimisparooli.</translation>
-<translation id="127345590676626841">Chrome teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni. Kui allalaadimine on lõppenud, siis Chrome taaskäivitub ja võite alustada kasutamist.</translation>
 <translation id="1302523850133262269">Oodake, kuni Chrome installib uusimad süsteemivärskendused.</translation>
 <translation id="137466361146087520">Google Chrome'i beetaversioon</translation>
 <translation id="1393853151966637042">Hankige abi Chrome'i kasutamise kohta</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Chrome OS-i tingimused</translation>
 <translation id="7419046106786626209">Google OS ei saanud teie andmeid sünkroonida, sest sünkroonimine pole teie domeenil saadaval.</translation>
 <translation id="7459554271817304652">Seadistage sünkroonimine, et salvestada brauseri isikupärastatud funktsioonid veebi, misjuhul pääsete Google Chrome'i kaudu igast arvutist nende juurde.</translation>
-<translation id="7473136999113284234">Chrome teeb värskendused automaatselt, nii et kasutate alati uusimat versiooni.</translation>
 <translation id="7486227612705979895">Chrome pääseb teie Drive'ile juurde, et aadressiribal soovitusi anda</translation>
 <translation id="7531671357096394523">Sulgege kõik Chrome'i eksemplarid.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fa.xtb b/chrome/app/resources/google_chrome_strings_fa.xtb
index 17513aa..49de652 100644
--- a/chrome/app/resources/google_chrome_strings_fa.xtb
+++ b/chrome/app/resources/google_chrome_strings_fa.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">‏به‌روزرسانی Chrome امکان‌پذیر نیست</translation>
 <translation id="1154147086299354128">‏&amp;باز کردن در Chrome</translation>
 <translation id="123620459398936149">‏سیستم‌عامل Chrome قادر به همگام‌سازی داده‌های شما نبود. لطفاً رمز عبارتی همگام‌سازی خود را به‌روز کنید.</translation>
-<translation id="127345590676626841">‏Chrome به صورت خودکار به‌روزرسانی می‌شود بنابراین همیشه جدیدترین نسخه را دارید. وقتی این بارگیری تمام شد، Chrome مجدداً شروع به کار می‌کند و می‌توانید کارتان را ادامه دهید.</translation>
 <translation id="1302523850133262269">‏لطفاً صبر کنید تا Chrome جدیدترین به‌روزرسانی‌های سیستم را نصب کند.</translation>
 <translation id="137466361146087520">‏Google Chrome نسخه بتا</translation>
 <translation id="1393853151966637042">‏دریافت راهنمایی برای استفاده از Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">‏شرایط Chrome OS</translation>
 <translation id="7419046106786626209">‏سیستم‌عامل Chrome قادر به همگام‌سازی داده‌هایتان نبود زیرا همگام‌سازی برای دامنه شما قابل دسترسی نیست.</translation>
 <translation id="7459554271817304652">‏برای ذخیره ویژگی‌های مرورگر سفارشی شده خود در وب و دسترسی به آن‌ها از Google Chrome از هر رایانه دیگری، همگام‌سازی را راه‌اندازی کنید.</translation>
-<translation id="7473136999113284234">‏Chrome به صورت خودکار به‌روزرسانی می‌شود بنابراین همیشه جدیدترین نسخه را دارید.</translation>
 <translation id="7486227612705979895">‏Chrome برای ارائه پیشنهاد در نوار نشانی، به Drive شما دسترسی خواهد داشت</translation>
 <translation id="7531671357096394523">‏از همه نسخه‌های Chrome خارج شوید.</translation>
 <translation id="7535429826459677826">‏Google Chrome نسخه Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fi.xtb b/chrome/app/resources/google_chrome_strings_fi.xtb
index c38042dc..0a8933b 100644
--- a/chrome/app/resources/google_chrome_strings_fi.xtb
+++ b/chrome/app/resources/google_chrome_strings_fi.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chromen päivitys epäonnistui</translation>
 <translation id="1154147086299354128">Avaa Chr&amp;omessa</translation>
 <translation id="123620459398936149">Chrome-käyttöjärjestelmä ei voinut synkronoida tietoja. Päivitä synkronoinnin tunnuslause.</translation>
-<translation id="127345590676626841">Chrome päivittyy automaattisesti, joten käytössäsi on aina uusin versio. Kun lataus on valmis, Chrome käynnistyy uudelleen ja voit aloittaa käytön.</translation>
 <translation id="1302523850133262269">Odota hetki, Chrome asentaa uusimpia järjestelmäpäivityksiä.</translation>
 <translation id="137466361146087520">Google Chromen betaversio</translation>
 <translation id="1393853151966637042">Apua Chromen käytössä</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Chrome-käyttöjärjestelmän käyttöehdot</translation>
 <translation id="7419046106786626209">Chrome-käyttöjärjestelmä ei voinut synkronoida tietoja, koska synkronointi ei ole käytettävissä verkkotunnuksessasi.</translation>
 <translation id="7459554271817304652">Määrittämällä synkronoinnin voit tallentaa selaimesi tiedot verkkoon ja käyttää niitä minkä tahansa tietokoneen Google Chromella.</translation>
-<translation id="7473136999113284234">Chrome päivitetään automaattisesti, joten käytössäsi on aina uusin versio</translation>
 <translation id="7486227612705979895">Chrome käyttää Drivea antaakseen ehdotuksia osoitepalkissa</translation>
 <translation id="7531671357096394523">Lopeta kaikki Chrome-kopiot</translation>
 <translation id="7535429826459677826">Google Chromen kehittäjäversio</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fil.xtb b/chrome/app/resources/google_chrome_strings_fil.xtb
index 5726b57d..0f49240 100644
--- a/chrome/app/resources/google_chrome_strings_fil.xtb
+++ b/chrome/app/resources/google_chrome_strings_fil.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Hindi ma-update ang Chrome</translation>
 <translation id="1154147086299354128">Buksan sa Chr&amp;ome</translation>
 <translation id="123620459398936149">Hindi ma-sync ng Chrome OS ang iyong data. Paki-update ang iyong Passphrase sa pag-sync.</translation>
-<translation id="127345590676626841">Awtomatikong nag-a-update ang Chrome upang palagi kang may pinakabagong bersyon. Kapag nakumpleto ang pag-download na ito, magre-restart ang Chrome at makakapagpatuloy ka na.</translation>
 <translation id="1302523850133262269">Mangyaring maghintay habang ini-install ng Chrome ang mga pinakabagong update sa system.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Humingi ng tulong sa paggamit ng Chrome</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Mga tuntunin ng Chrome OS</translation>
 <translation id="7419046106786626209">Hindi ma-sync ng Chrome OS ang iyong data dahil hindi available ang Pag-sync para sa iyong domain.</translation>
 <translation id="7459554271817304652">I-set up ang Pag-sync upang i-save ang iyong personalized na mga tampok sa browser sa web at i-access ang mga iyon mula sa Google Chrome sa anumang computer.</translation>
-<translation id="7473136999113284234">Awtomatikong nag-a-update ang Chrome upang palagi kang may pinakabagong bersyon.</translation>
 <translation id="7486227612705979895">Ia-access ng Chrome ang iyong Drive para makapagmungkahi sa address bar</translation>
 <translation id="7531671357096394523">Ihinto ang lahat ng kopya ng Chrome</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_fr.xtb b/chrome/app/resources/google_chrome_strings_fr.xtb
index c4031b83..98c34a3f 100644
--- a/chrome/app/resources/google_chrome_strings_fr.xtb
+++ b/chrome/app/resources/google_chrome_strings_fr.xtb
@@ -14,7 +14,6 @@
 <translation id="1142745911746664600">Impossible de mettre Chrome à jour</translation>
 <translation id="1154147086299354128">&amp;Ouvrir dans Chrome</translation>
 <translation id="123620459398936149">Impossible de synchroniser vos données dans Chrome OS. Veuillez mettre à jour votre phrase secrète de synchronisation.</translation>
-<translation id="127345590676626841">Chrome est automatiquement mis à jour pour vous permettre de toujours disposer de la dernière version. Une fois le téléchargement terminé, Chrome redémarre et vous pouvez de nouveau l'utiliser.</translation>
 <translation id="1302523850133262269">Veuillez patienter pendant que Chrome installe les dernières mises à jour du système.</translation>
 <translation id="137466361146087520">Version bêta de Google Chrome</translation>
 <translation id="1393853151966637042">Obtenir de l'aide sur l'utilisation de Google Chrome</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Conditions d'utilisation de Chrome OS</translation>
 <translation id="7419046106786626209">Impossible de synchroniser vos données dans Chrome OS, car la synchronisation n'est pas disponible pour votre domaine.</translation>
 <translation id="7459554271817304652">Configurez la synchronisation pour enregistrer sur le Web les fonctionnalités personnalisées de votre navigateur et y accéder à partir de Google Chrome sur n'importe quel ordinateur.</translation>
-<translation id="7473136999113284234">Chrome est automatiquement mis à jour pour vous permettre de toujours disposer de la dernière version.</translation>
 <translation id="7486227612705979895">Chromium va accéder à votre Drive pour proposer des suggestions dans la barre d'adresse</translation>
 <translation id="7531671357096394523">Fermez toutes les copies de Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome pour les développeurs</translation>
diff --git a/chrome/app/resources/google_chrome_strings_gu.xtb b/chrome/app/resources/google_chrome_strings_gu.xtb
index 9abfe1a1..be2de9e 100644
--- a/chrome/app/resources/google_chrome_strings_gu.xtb
+++ b/chrome/app/resources/google_chrome_strings_gu.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chrome અપડેટ કરી શકતાં નથી</translation>
 <translation id="1154147086299354128">&amp;Chromeમાં ખોલો</translation>
 <translation id="123620459398936149">Chrome OS તમારા ડેટાને સિંક કરી શક્યું નથી. કૃપા કરીને તમારા સિંક પાસફ્રેઝને અપડેટ કરો.</translation>
-<translation id="127345590676626841">Chrome ઑટોમૅટિક રીતે અપડેટ થાય છે, જેથી કરીને તમારી પાસે હંમેશાં નવું વર્ઝન રહે. જ્યારે આ ડાઉનલોડ પૂરું થાય છે, ત્યારે Chrome ફરીથી શરુ થશે અને તમે તમારા માર્ગે હશો.</translation>
 <translation id="1302523850133262269">કૃપા કરીને Chrome નવીનતમ સિસ્ટમ અપડેટ્સ ઇન્સ્ટોલ કરે ત્યાં સુધી રાહ જુઓ.</translation>
 <translation id="137466361146087520">Google Chrome બીટા</translation>
 <translation id="1393853151966637042">Chrome નો ઉપયોગ કરવા સહાય મેળવો</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Chrome OS શરતો</translation>
 <translation id="7419046106786626209">Chrome OS તમારા ડેટાને સિંક કરી શક્યું નથી કારણ કે તમારા ડોમેન માટે સિંક ઉપલબ્ધ નથી.</translation>
 <translation id="7459554271817304652">તમારી વેબ પરની વ્યક્તિગત કરેલી બ્રાઉઝર સુવિધાઓને સાચવવા અને તેમને કોઈ પણ કમ્પ્યુટર પર Google Chromeમાંથી ઍક્સેસ કરવા માટે સિંક સેટ કરો.</translation>
-<translation id="7473136999113284234">Chrome ઑટોમૅટિક રીતે અપડેટ થાય છે, જેથી કરીને તમારી પાસે હંમેશાં સૌથી નવું વર્ઝન રહે છે.</translation>
 <translation id="7486227612705979895">ઍડ્રેસ બારમાં સૂચનો કરવા માટે, Chrome તમારી ડ્રાઇવને ઍક્સેસ કરશે</translation>
 <translation id="7531671357096394523">Chromeની બધી કૉપિ બંધ કરો.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hi.xtb b/chrome/app/resources/google_chrome_strings_hi.xtb
index 29bd3d4..18152b4 100644
--- a/chrome/app/resources/google_chrome_strings_hi.xtb
+++ b/chrome/app/resources/google_chrome_strings_hi.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome को अपडेट नहीं किया जा सकता</translation>
 <translation id="1154147086299354128">Chrome में &amp;खोलें</translation>
 <translation id="123620459398936149">Chrome OS आपका डेटा सिंक नहीं कर सका. कृपया अपना सिंक 'पासफ़्रेज़' अपडेट करें.</translation>
-<translation id="127345590676626841">Chrome अपने आप अपडेट हो जाता है ताकि आपके पास हमेशा सबसे नवीनतम वर्शन रहे. जब यह डाउनलोड पूरा हो जाता है, तो Chrome फिर से शुरू होगा और आप आगे बढ़ जाएंगे.</translation>
 <translation id="1302523850133262269">कृपया Chrome के द्वारा नवीनतम सिस्टम अपडेट इंस्टॉल करने के दौरान प्रतीक्षा करें.</translation>
 <translation id="137466361146087520">Google Chrome बीटा</translation>
 <translation id="1393853151966637042">Chrome का उपयोग करने के बारे में सहायता पाएं</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Chrome OS शर्तें</translation>
 <translation id="7419046106786626209">Chrome OS आपका डेटा समन्वयित नहीं कर सका क्योंकि आपके डोमेन के लिए समन्वयन उपलब्ध नहीं है.</translation>
 <translation id="7459554271817304652">वेब पर अपनी व्यक्तिगत ब्राउज़र सुविधाएं सेव करने के लिए सिंक सेट करें और किसी भी कंप्‍यूटर पर Google Chrome से एक्सेस करें.</translation>
-<translation id="7473136999113284234">Chrome अपने आप अपडेट हो जाता है इसलिए आपके पास हमेशा नवीनतम वर्शन रहता है.</translation>
 <translation id="7486227612705979895">पता बार में सुझाव देने के लिए Chrome आपका 'डिस्क' ऐक्सेस करेगा</translation>
 <translation id="7531671357096394523">Chrome की सभी कॉपी से बाहर निकलें.</translation>
 <translation id="7535429826459677826">Google Chrome डेवलपर</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hr.xtb b/chrome/app/resources/google_chrome_strings_hr.xtb
index 49a9e2c..2cddf4d 100644
--- a/chrome/app/resources/google_chrome_strings_hr.xtb
+++ b/chrome/app/resources/google_chrome_strings_hr.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Nije moguće ažurirati Chrome</translation>
 <translation id="1154147086299354128">&amp;Otvori u Chromeu</translation>
 <translation id="123620459398936149">OS Chrome nije mogao sinkronizirati vaše podatke. Ažurirajte zaporku za sinkronizaciju.</translation>
-<translation id="127345590676626841">Chrome se ažurira automatski, pa uvijek imate najnoviju verziju. Kada se ovo preuzimanje dovrši, Chrome će se ponovo pokrenuti i moći ćete nastaviti.</translation>
 <translation id="1302523850133262269">Pričekajte da Chrome instalira najnovija ažuriranja sustava.</translation>
 <translation id="137466361146087520">Beta verzija preglednika Chrome</translation>
 <translation id="1393853151966637042">Pomoć za upotrebu Chromea</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Uvjeti za OS Chrome</translation>
 <translation id="7419046106786626209">OS Chrome nije mogao sinkronizirati vaše podatke jer sinkronizacija nije dostupna za vašu domenu.</translation>
 <translation id="7459554271817304652">Postavite sinkronizaciju da biste spremili svoje prilagođene značajke preglednika na web i pristupali im s preglednika Google Chrome na bilo kojem računalu.</translation>
-<translation id="7473136999113284234">Chrome se automatski ažurira tako da uvijek imate najnoviju verziju.</translation>
 <translation id="7486227612705979895">Chrome će pristupati vašem Disku radi prikazivanja prijedloga u adresnoj traci</translation>
 <translation id="7531671357096394523">Zatvori sve primjerke Chromea.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_hu.xtb b/chrome/app/resources/google_chrome_strings_hu.xtb
index 952e5f7..25f4d5c 100644
--- a/chrome/app/resources/google_chrome_strings_hu.xtb
+++ b/chrome/app/resources/google_chrome_strings_hu.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Nem sikerült a Chrome frissítése</translation>
 <translation id="1154147086299354128">&amp;Megnyitás Chrome-ban</translation>
 <translation id="123620459398936149">A Chrome OS nem tudta szinkronizálni az adatokat. Kérjük, frissítse szinkronizálási összetett jelszavát.</translation>
-<translation id="127345590676626841">A Chrome automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik. A letöltés befejezése után a Chrome újraindul, és máris rendelkezésre áll.</translation>
 <translation id="1302523850133262269">Kérjük, várjon, amíg a Chrome telepíti a legutóbbi rendszerfrissítéseket.</translation>
 <translation id="137466361146087520">Google Chrome Béta</translation>
 <translation id="1393853151966637042">A Chrome használatával kapcsolatos súgó</translation>
@@ -212,7 +211,6 @@
 <translation id="7408085963519505752">Chrome OS – Szerződési Feltételek</translation>
 <translation id="7419046106786626209">A Chrome OS nem tudta szinkronizálni az adatait, mert a szinkronizálás nem érhető el az Ön domainjénél.</translation>
 <translation id="7459554271817304652">A szinkronizálás beállításával személyre szabott beállításait az interneten tárolhatja, így azok bármelyik számítógépen elérhetők a Google Chrome böngészőből.</translation>
-<translation id="7473136999113284234">A Chrome automatikusan frissít, így Ön mindig a legújabb verzióval rendelkezik.</translation>
 <translation id="7486227612705979895">A Chrome hozzáfér Drive-jához, hogy javaslatokat nyújthasson a címsávon.</translation>
 <translation id="7531671357096394523">A Chrome összes példányát be kell zárnia.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_id.xtb b/chrome/app/resources/google_chrome_strings_id.xtb
index 2039ac8..1d51845 100644
--- a/chrome/app/resources/google_chrome_strings_id.xtb
+++ b/chrome/app/resources/google_chrome_strings_id.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Tidak dapat mengupdate Chrome</translation>
 <translation id="1154147086299354128">&amp;Buka di Chrome</translation>
 <translation id="123620459398936149">Chrome OS tidak dapat menyinkronkan data Anda. Perbarui frasa sandi Sinkronisasi Anda.</translation>
-<translation id="127345590676626841">Chrome diperbarui secara otomatis sehingga Anda selalu memiliki versi terbaru. Saat download ini selesai, Chrome akan dimulai ulang dan segera siap digunakan.</translation>
 <translation id="1302523850133262269">Harap tunggu selagi Chrome memasang pembaruan sistem terkini.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Dapatkan bantuan tentang penggunaan Chrome</translation>
@@ -214,7 +213,6 @@
 <translation id="7408085963519505752">Persyaratan Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS tidak dapat menyinkronkan data Anda karena Sinkronisasi tidak tersedia untuk domain Anda.</translation>
 <translation id="7459554271817304652">Siapkan Sinkronisasi untuk menyimpan fitur browser hasil personalisasi Anda ke web dan mengaksesnya dari Google Chrome di komputer mana pun.</translation>
-<translation id="7473136999113284234">Chrome otomatis diperbarui sehingga Anda selalu memiliki versi terbaru.</translation>
 <translation id="7486227612705979895">Chrome akan mengakses Drive Anda untuk membuat saran di kolom URL</translation>
 <translation id="7531671357096394523">Tutup semua salinan Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_it.xtb b/chrome/app/resources/google_chrome_strings_it.xtb
index 1d59e37..de10be0 100644
--- a/chrome/app/resources/google_chrome_strings_it.xtb
+++ b/chrome/app/resources/google_chrome_strings_it.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Impossibile aggiornare Chrome</translation>
 <translation id="1154147086299354128">&amp;Apri in Chrome</translation>
 <translation id="123620459398936149">Impossibile sincronizzare i tuoi dati in Chrome OS. Aggiorna la passphrase di sincronizzazione.</translation>
-<translation id="127345590676626841">Chrome si aggiorna automaticamente per consentirti di avere sempre la versione più recente. Al termine del download, Chrome si riavvierà e potrai procedere.</translation>
 <translation id="1302523850133262269">Attendi mentre Chrome installa gli aggiornamenti di sistema più recenti.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Ricevi assistenza per l'utilizzo di Chrome</translation>
@@ -212,7 +211,6 @@
 <translation id="7408085963519505752">Termini di Chrome OS</translation>
 <translation id="7419046106786626209">Impossibile sincronizzare i dati in Chrome OS perché la sincronizzazione non è disponibile per il tuo dominio.</translation>
 <translation id="7459554271817304652">Configura la sincronizzazione per salvare le funzioni personalizzate del browser sul Web e accedervi da Google Chrome su qualsiasi computer.</translation>
-<translation id="7473136999113284234">Chrome si aggiorna automaticamente per consentirti di avere sempre la versione più recente.</translation>
 <translation id="7486227612705979895">Chrome accederà al tuo Drive per inserire suggerimenti nella barra degli indirizzi</translation>
 <translation id="7531671357096394523">Esci da tutte le copie di Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_iw.xtb b/chrome/app/resources/google_chrome_strings_iw.xtb
index 478a355d..bc5277e 100644
--- a/chrome/app/resources/google_chrome_strings_iw.xtb
+++ b/chrome/app/resources/google_chrome_strings_iw.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">‏לא ניתן לעדכן את Chrome</translation>
 <translation id="1154147086299354128">‏&amp;פתיחה ב-Chrome</translation>
 <translation id="123620459398936149">‏מערכת ההפעלה של Chrome לא הצליחה לסנכרן את הנתונים שלך. עדכן את משפט הסיסמה שלך לסנכרון.</translation>
-<translation id="127345590676626841">‏Chrome מתעדכן באופן אוטומטי, כך שתמיד ברשותך הגרסה העדכנית ביותר. כשההורדה תסתיים, Chrome יופעל מחדש ותוכל להמשיך.</translation>
 <translation id="1302523850133262269">‏המתן בזמן ש-Chrome מתקין את עדכוני המערכת האחרונים.</translation>
 <translation id="137466361146087520">‏גרסת הביטא של Google Chrome</translation>
 <translation id="1393853151966637042">‏קבלת עזרה לשימוש ב-Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">‏תנאים עבור מערכת ההפעלה של Chrome</translation>
 <translation id="7419046106786626209">‏מערכת ההפעלה של Chrome לא הצליחה לסנכרן את הנתונים שלך מפני שהסנכרון אינו זמין עבור הדומיין שלך.</translation>
 <translation id="7459554271817304652">‏הגדר סנכרון כדי לשמור את תכונות הדפדפן המותאמות אישית שלך באינטרנט ולגשת אליהן מ-Google Chrome בכל מחשב.</translation>
-<translation id="7473136999113284234">‏Chrome מתעדכן באופן אוטומטי, כך שתמיד נמצאת ברשותך הגרסה העדכנית ביותר.</translation>
 <translation id="7486227612705979895">‏Chrome ייגש ל-Drive שלך כדי להציג הצעות בשורת כתובת האתר</translation>
 <translation id="7531671357096394523">‏יש לסגור את כל העותקים של Chrome.</translation>
 <translation id="7535429826459677826">‏גרסת הפיתוח של Google Chrome</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ja.xtb b/chrome/app/resources/google_chrome_strings_ja.xtb
index c2e2e6c..af5e77a 100644
--- a/chrome/app/resources/google_chrome_strings_ja.xtb
+++ b/chrome/app/resources/google_chrome_strings_ja.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome を更新できません</translation>
 <translation id="1154147086299354128">Chrome で開く(&amp;O)</translation>
 <translation id="123620459398936149">Chrome OS はデータを同期できませんでした。同期パスフレーズを更新してください。</translation>
-<translation id="127345590676626841">Chrome は自動的に更新されるため、常に最新版をご利用になれます。このダウンロードが完了すると、Chrome が再起動し、すぐにお使いいただけます。</translation>
 <translation id="1302523850133262269">Chrome は最新のシステム アップデートをインストールしています。しばらくお待ちください。</translation>
 <translation id="137466361146087520">Google Chrome ベータ版</translation>
 <translation id="1393853151966637042">Chrome の使用に関するアドバイス</translation>
@@ -214,7 +213,6 @@
 <translation id="7408085963519505752">Chrome OS 利用規約</translation>
 <translation id="7419046106786626209">お使いのドメインでは同期を利用できないため、Chrome OS はデータを同期できませんでした。</translation>
 <translation id="7459554271817304652">同期を設定すると、パーソナライズされたブラウザ機能をウェブ上に保存して、どのパソコンの Google Chrome からでも使用できるようになります。</translation>
-<translation id="7473136999113284234">Chrome は自動的に更新されるため、常に最新版をご利用になれます。</translation>
 <translation id="7486227612705979895">Chrome からお客様のドライブにアクセスして、アドレスバーに候補を表示します</translation>
 <translation id="7531671357096394523">Chrome のすべてのコピーを終了します。</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_kn.xtb b/chrome/app/resources/google_chrome_strings_kn.xtb
index 100b5d3..daed7b1 100644
--- a/chrome/app/resources/google_chrome_strings_kn.xtb
+++ b/chrome/app/resources/google_chrome_strings_kn.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="1154147086299354128">ಮತ್ತು Chrome ನಲ್ಲಿ ತೆರೆಯಿರಿ</translation>
 <translation id="123620459398936149">ನಿಮ್ಮ ಡೇಟಾವನ್ನು Chrome OS ಗೆ ಸಿಂಕ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ. ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಅಪ್‌ಡೇಟ್ ಮಾಡಿ.</translation>
-<translation id="127345590676626841">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಿಸುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯುನ್ನು ಹೊಂದಿರುತ್ತೀರಿ. ಈ ಡೌನ್‌ಲೋಡ್‌ ಸಂಪೂರ್ಣಗೊಂಡಾಗ, Chrome ಮರುಪ್ರಾರಂಭಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಮಾರ್ಗದಲ್ಲಿ ನೀವು ಇರಬೇಕಾಗುತ್ತದೆ.</translation>
 <translation id="1302523850133262269">ಇತ್ತೀಚಿನ ಸಿಸ್ಟಂ ನವೀಕರಣಗಳನ್ನು Chrome ಸ್ಥಾಪಿಸುವಾಗ ದಯವಿಟ್ಟು ಕಾಯಿರಿ.</translation>
 <translation id="137466361146087520">Google Chrome ಬೀಟಾ</translation>
 <translation id="1393853151966637042">Chrome ಅನ್ನು ಬಳಸಿಕೊಳ್ಳುವುದರೊಂದಿಗೆ ಸಹಾಯವನ್ನು ಪಡೆಯಿರಿ</translation>
@@ -214,7 +213,6 @@
 <translation id="7408085963519505752">Chrome OS ನಿಯಮಗಳು</translation>
 <translation id="7419046106786626209">ನಿಮ್ಮ ಡೊಮೇನ್‌ನಲ್ಲಿ ಸಿಂಕ್ ಮಾಡುವ ಸೌಲಭ್ಯವಿಲ್ಲದ ಕಾರಣ ನಿಮ್ಮ ಡೇಟಾವನ್ನು ಸಿಂಕ್ ಮಾಡಲು Chrome OS ಗೆ ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ.</translation>
 <translation id="7459554271817304652">ನಿಮ್ಮ ವೈಯಕ್ತಿಕಗೊಳಿಸಿದ ಬ್ರೌಸರ್ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ವೆಬ್‍ಗೆ ಉಳಿಸಲು ಮತ್ತು ಅವುಗಳನ್ನು Google Chrome ನಿಂದ ಯಾವುದೇ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿ ಪ್ರವೇಶಿಸಲು ಸಿಂಕ್ ಅನ್ನು ಹೊಂದಿಸಿ.</translation>
-<translation id="7473136999113284234">Chrome ಸ್ವಯಂಚಾಲಿತವಾಗಿ ನವೀಕರಣಗೊಳ್ಳುತ್ತದೆ ಈ ಮೂಲಕ ನೀವು ಯಾವಾಗಲೂ ತಾಜಾ ಆವೃತ್ತಿಯನ್ನು ಹೊಂದಿರುತ್ತೀರಿ.</translation>
 <translation id="7486227612705979895">ವಿಳಾಸಪಟ್ಟಿಯಲ್ಲಿ ಸಲಹೆ ನೀಡಲು, Chrome ನಿಮ್ಮ ಡ್ರೈವ್‌ಗೆ ಪ್ರವೇಶಿಸುತ್ತದೆ.</translation>
 <translation id="7531671357096394523">Chrome ನ ಎಲ್ಲಾ ನಕಲುಗಳನ್ನು ತ್ಯಜಿಸಿ.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ko.xtb b/chrome/app/resources/google_chrome_strings_ko.xtb
index 402218eb..8d9c918 100644
--- a/chrome/app/resources/google_chrome_strings_ko.xtb
+++ b/chrome/app/resources/google_chrome_strings_ko.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chrome을 업데이트할 수 없음</translation>
 <translation id="1154147086299354128">Chrome에서 열기(&amp;O)</translation>
 <translation id="123620459398936149">Chrome OS에서 데이터를 동기화하지 못했습니다. 동기화 암호를 업데이트하세요.</translation>
-<translation id="127345590676626841">Chrome은 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다. 이 다운로드가 완료되면 Chrome이 다시 시작되며 계속 작업할 수 있습니다.</translation>
 <translation id="1302523850133262269">Chrome에서 최신 시스템 업데이트를 설치하는 동안 잠시 기다려 주세요.</translation>
 <translation id="137466361146087520">Chrome 베타</translation>
 <translation id="1393853151966637042">Chrome 사용에 대한 도움말</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Chrome OS 이용약관</translation>
 <translation id="7419046106786626209">내 도메인에서 동기화를 사용할 수 없으므로 Chrome OS에서 데이터를 동기화하지 못했습니다.</translation>
 <translation id="7459554271817304652">맞춤설정한 브라우저 기능을 웹에 저장하고 모든 컴퓨터의 Chrome에서 액세스할 수 있도록 동기화를 설정합니다.</translation>
-<translation id="7473136999113284234">Chrome은 자동으로 업데이트되므로 항상 최신 버전을 사용할 수 있습니다.</translation>
 <translation id="7486227612705979895">Chrome에서 내 드라이브에 액세스하여 주소 표시줄에 추천 검색어를 표시합니다.</translation>
 <translation id="7531671357096394523">모든 Chrome 버전 종료</translation>
 <translation id="7535429826459677826">Chrome 개발자</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lt.xtb b/chrome/app/resources/google_chrome_strings_lt.xtb
index f579e47..5c11436 100644
--- a/chrome/app/resources/google_chrome_strings_lt.xtb
+++ b/chrome/app/resources/google_chrome_strings_lt.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Nepavyko atnaujinti „Chrome“</translation>
 <translation id="1154147086299354128">&amp;Atidaryti naudojant „Chrome“</translation>
 <translation id="123620459398936149">„Chrome“ OS negali sinchronizuoti duomenų. Atnaujinkite sinchronizavimo slaptafrazę.</translation>
-<translation id="127345590676626841">„Chrome“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija. Baigus atsisiųsti, „Chrome“ bus paleista iš naujo ir galėsite pradėti ja naudotis.</translation>
 <translation id="1302523850133262269">Palaukite, kol „Chrome“ įdiegs naujausius sistemos naujinius.</translation>
 <translation id="137466361146087520">„Google Chrome“ beta</translation>
 <translation id="1393853151966637042">Gauti su „Chrome“ naudojimu susijusios pagalbos</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">„Chrome“ OS sąlygos</translation>
 <translation id="7419046106786626209">„Chrome“ OS negali sinchronizuoti duomenų, nes jūsų domene sinchronizavimas nepasiekiamas.</translation>
 <translation id="7459554271817304652">Nustatykite sinchronizavimą, kad žiniatinklyje išsaugotumėte suasmenintas naršyklės funkcijas ir pasiektumėte jas iš „Google Chrome“ bet kuriuo kompiuteriu.</translation>
-<translation id="7473136999113284234">„Chrome“ atnaujinama automatiškai, todėl visada naudojatės naujausia versija.</translation>
 <translation id="7486227612705979895">„Chrome“ turės prieigą prie Disko, kad galėtų teikti pasiūlymus adreso juostoje</translation>
 <translation id="7531671357096394523">Uždarykite visas „Chrome“ kopijas.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_lv.xtb b/chrome/app/resources/google_chrome_strings_lv.xtb
index ea10832..dc2109425 100644
--- a/chrome/app/resources/google_chrome_strings_lv.xtb
+++ b/chrome/app/resources/google_chrome_strings_lv.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Nevar atjaunināt Chrome</translation>
 <translation id="1154147086299354128">&amp;Atvērt pārlūkā Chrome</translation>
 <translation id="123620459398936149">Chrome OS nevarēja sinhronizēt jūsu datus. Lūdzu, atjauniniet savu sinhronizācijas ieejas frāzi.</translation>
-<translation id="127345590676626841">Pārlūks Chrome tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija. Kad šī lejupielāde būs pabeigta, pārlūks Chrome tiks restartēts un varēsiet sākt lietot visjaunāko versiju.</translation>
 <translation id="1302523850133262269">Lūdzu, uzgaidiet, kamēr Chrome instalē jaunākos sistēmas atjauninājumus.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Saņemt palīdzību par Chrome izmantošanu</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Chrome OS noteikumi</translation>
 <translation id="7419046106786626209">Chrome OS nevarēja sinhronizēt jūsu datus, jo sinhronizācija jūsu domēnā nav pieejama.</translation>
 <translation id="7459554271817304652">Iestatiet sinhronizāciju, lai saglabātu savas personalizētās pārlūka funkcijas tīmeklī un piekļūtu tām no pārlūka Google Chrome jebkurā datorā.</translation>
-<translation id="7473136999113284234">Pārlūks Chrome tiek atjaunināts automātiski, tādēļ jums vienmēr būs pieejama visjaunākā versija.</translation>
 <translation id="7486227612705979895">Pārlūkā Chrome tiks izmantota Diskā pieejamā informācija, lai adrešu joslā piedāvātu ieteikumus</translation>
 <translation id="7531671357096394523">Aizveriet visas Chrome kopijas.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ml.xtb b/chrome/app/resources/google_chrome_strings_ml.xtb
index 50cccfc7..fed63a7 100644
--- a/chrome/app/resources/google_chrome_strings_ml.xtb
+++ b/chrome/app/resources/google_chrome_strings_ml.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chrome അപ്‌ഡേറ്റ് ചെയ്യാനാവില്ല</translation>
 <translation id="1154147086299354128">&amp;Chrome-ൽ തുറക്കുക</translation>
 <translation id="123620459398936149">Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല. നിങ്ങളുടെ സമന്വയ പാസ്‌ഫ്രെയ്സ് അപ്‌ഡേറ്റ് ചെയ്യുക.</translation>
-<translation id="127345590676626841">Chrome സ്വയമേവ അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും. ഈ ഡൗൺലോഡ് പൂർത്തിയാകുമ്പോൾ Chrome പുനരാരംഭിക്കും, അതിനുശേഷം നിങ്ങൾക്ക് തുടരാം.</translation>
 <translation id="1302523850133262269">ഏറ്റവും പുതിയ സിസ്‌റ്റം അപ്‌ഡേറ്റുകൾ Chrome ഇൻസ്റ്റാളുചെയ്യുന്നതുവരെ കാത്തിരിക്കുക.</translation>
 <translation id="137466361146087520">Google Chrome ബീറ്റ</translation>
 <translation id="1393853151966637042">Chrome ഉപയോഗിച്ച് സഹായം തേടുക</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Chrome OS നിബന്ധനകൾ</translation>
 <translation id="7419046106786626209">നിങ്ങളുടെ ഡൊമെയ്‌‌നിനായി സമന്വയം ലഭ്യമല്ലാത്തതിനാൽ Chrome OS-ന് നിങ്ങളുടെ ഡാറ്റ സമന്വയിപ്പിക്കാനായില്ല.</translation>
 <translation id="7459554271817304652">വെബിലേക്ക് നിങ്ങളുടെ വ്യക്തിഗതമാക്കിയ ബ്രൗസർ സവിശേഷതകൾ സംരക്ഷിക്കുന്നതിനും ഏതൊരു കമ്പ്യൂട്ടറിൽ നിന്നും Google Chrome-ലേക്ക് അവയെ ആക്‌സസ് ചെയ്യുന്നതിനും സമന്വയം സജ്ജമാക്കുക.</translation>
-<translation id="7473136999113284234">Chrome സ്വയമേവ അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ, നിങ്ങളുടേത് എല്ലായ്പ്പോഴും ഏറ്റവും പുതിയ പതിപ്പായിരിക്കും.</translation>
 <translation id="7486227612705979895">വിലാസ ബാറിൽ നിർദ്ദേശങ്ങൾ സൃഷ്‌ടിക്കാൻ, Chrome നിങ്ങളുടെ ഡ്രൈവ് ആക്‌സ‌സ് ചെയ്യും</translation>
 <translation id="7531671357096394523">Chrome-ൻ്റെ എല്ലാ പകർപ്പുകളും അവസാനിപ്പിക്കുക.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_mr.xtb b/chrome/app/resources/google_chrome_strings_mr.xtb
index b79bf06..edc685be 100644
--- a/chrome/app/resources/google_chrome_strings_mr.xtb
+++ b/chrome/app/resources/google_chrome_strings_mr.xtb
@@ -14,7 +14,6 @@
 <translation id="1142745911746664600">Chrome अपडेट करू शकत नाही</translation>
 <translation id="1154147086299354128">Chrome मध्‍ये &amp;उघडा</translation>
 <translation id="123620459398936149">Chrome OS तुमचा डेटा सिंक करू शकले नाही. कृपया तुमचा सिंक सांकेतिक पासफ्रेज अपडेट करा.</translation>
-<translation id="127345590676626841">Chrome आपोआप अपडेट होते जेणेकरून तुमच्याकडे नेहमी सर्वात नवीन आवृत्ती असते. जेव्हा हे डाउनलोड पूर्ण होते, तेव्हा Chrome रीस्टार्ट होईल आणि तुम्ही तुमच्या मार्गावर असाल.</translation>
 <translation id="1302523850133262269">कृपया Chrome नवीनतम सिस्टम अपडेट इंस्टॉल करताना प्रतीक्षा करा.</translation>
 <translation id="137466361146087520">Google Chrome बीटा</translation>
 <translation id="1393853151966637042">Chrome वापरून मदत मिळवा</translation>
@@ -218,7 +217,6 @@
 <translation id="7408085963519505752">Chrome OS अटी</translation>
 <translation id="7419046106786626209">आपल्या डोमेनसाठी संकालन उपलब्ध नसल्यामुळे Chrome OS तुमचा डेटा संकालित करू शकले नाही.</translation>
 <translation id="7459554271817304652">तुमची पर्सनलाइझ केलेली ब्राउझर वैशिष्ट्ये सेव्ह करण्यासाठी सिंक सेट करा आणि कोणत्याही कॉंप्युटरवरील Google Chrome वरून ते अॅक्सेस करा.</translation>
-<translation id="7473136999113284234">Chrome स्वयंचलितपणे अपडेट होते जेणेकरून आपल्याकडे नेहमी सर्वात नवीन आवृत्ती असते.</translation>
 <translation id="7486227612705979895">ॲड्रेस बारमध्ये सूचना देण्यासाठी Chrome तुमची ड्राइव्ह ॲक्सेस करेल</translation>
 <translation id="7531671357096394523">Chrome च्या सर्व प्रती बंद करा.</translation>
 <translation id="7535429826459677826">Google Chrome विकासक</translation>
@@ -269,7 +267,7 @@
 <translation id="8679801911857917785">तुम्ही Chrome सुरू करता तेव्हा कोणते पृष्ठ दर्शविले जाते हे देखील हे नियंत्रित करते.</translation>
 <translation id="870251953148363156">&amp;Google Chrome अपडेट करा</translation>
 <translation id="873133009373065397">Google Chrome डीफॉल्ट ब्राउझर निर्धारित करू शकत नाही किंवा सेट करू शकत नाही</translation>
-<translation id="8736674169840206667">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करणे अावश्यक आहे</translation>
+<translation id="8736674169840206667">तुमच्या अॅडमिनिस्ट्रेटरला अपडेट लागू करता यावी यासाठी तुम्ही Chrome पुन्हा लाँच करण्याची आवश्यकता आहे</translation>
 <translation id="8823341990149967727">Chrome कालबाह्य आहे</translation>
 <translation id="884296878221830158">तुम्ही Chrome सुरू करता किंवा होम बटण क्लिक करता तेव्हा कोणते पेज दर्शविले जाते ते देखील हे नियंत्रित करते.</translation>
 <translation id="8862326446509486874">तुमच्याकडे सिस्टम स्तरावरील इंस्टॉलसाठी योग्य अधिकार नाहीत. अॅडमिनिस्ट्रेटर म्हणून पुन्हा इंस्टॉलर चालविण्याचा प्रयत्न करा.</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ms.xtb b/chrome/app/resources/google_chrome_strings_ms.xtb
index a58c76d..831de6e8 100644
--- a/chrome/app/resources/google_chrome_strings_ms.xtb
+++ b/chrome/app/resources/google_chrome_strings_ms.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Tidak dapat mengemas kini Chrome</translation>
 <translation id="1154147086299354128">&amp;Buka dalam Chrome</translation>
 <translation id="123620459398936149">OS Chrome tidak dapat menyegerakkan data anda. Sila kemas kini frasa laluan Segerak anda.</translation>
-<translation id="127345590676626841">Chrome dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang terbaharu. Apabila muat turun ini selesai, Chrome akan dimulakan semula dan anda sudah boleh menggunakannya.</translation>
 <translation id="1302523850133262269">Sila tunggu sementara Chrome memasang kemas kini sistem terkini.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Dapatkan bantuan untuk menggunakan Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Syarat Chrome OS</translation>
 <translation id="7419046106786626209">OS Chrome tidak dapat menyegerakkan data anda kerana Segerak tidak tersedia untuk domain anda.</translation>
 <translation id="7459554271817304652">Sediakan Penyegerakan untuk menyimpan ciri penyemak imbas anda yang diperibadikan ke web dan mengaksesnya dari Google Chrome pada mana-mana komputer.</translation>
-<translation id="7473136999113284234">Chrome dikemas kini secara automatik supaya anda sentiasa mempunyai versi yang terbaharu.</translation>
 <translation id="7486227612705979895">Chrome akan mengakses Drive anda untuk membuat cadangan dalam bar alamat</translation>
 <translation id="7531671357096394523">Tutup semua salinan Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_nl.xtb b/chrome/app/resources/google_chrome_strings_nl.xtb
index 7241c5c..dba647fd 100644
--- a/chrome/app/resources/google_chrome_strings_nl.xtb
+++ b/chrome/app/resources/google_chrome_strings_nl.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Kan Chrome niet updaten</translation>
 <translation id="1154147086299354128">&amp;Openen in Chrome</translation>
 <translation id="123620459398936149">Chrome OS kan je gegevens niet synchroniseren. Update je wachtwoordzin voor synchronisatie.</translation>
-<translation id="127345590676626841">Chrome wordt automatisch bijgewerkt, zodat je altijd beschikt over de nieuwste versie. Wanneer deze download is voltooid, wordt Chrome opnieuw gestart en kun je doorgaan.</translation>
 <translation id="1302523850133262269">Wacht terwijl Chrome de nieuwste systeemupdates installeert.</translation>
 <translation id="137466361146087520">Google Chrome Bèta</translation>
 <translation id="1393853151966637042">Hulp bij het gebruik van Chrome</translation>
@@ -218,7 +217,6 @@
 <translation id="7408085963519505752">Voorwaarden van Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS kan je gegevens niet synchroniseren omdat synchronisatie niet beschikbaar is voor je domein.</translation>
 <translation id="7459554271817304652">Stel synchronisatie in om je persoonlijke browserfuncties online op te slaan en toegang te krijgen tot deze functies via Google Chrome, vanaf elke computer.</translation>
-<translation id="7473136999113284234">Chrome wordt automatisch bijgewerkt, zodat je altijd beschikt over de nieuwste versie.</translation>
 <translation id="7486227612705979895">Chrome gebruikt de toegang tot je Drive om suggesties te doen in de adresbalk</translation>
 <translation id="7531671357096394523">Sluit alle exemplaren van Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_no.xtb b/chrome/app/resources/google_chrome_strings_no.xtb
index b08206a8..100e2c69 100644
--- a/chrome/app/resources/google_chrome_strings_no.xtb
+++ b/chrome/app/resources/google_chrome_strings_no.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Kan ikke oppdatere Chrome</translation>
 <translation id="1154147086299354128">&amp;Åpne i Chrome</translation>
 <translation id="123620459398936149">Chrome OS kunne ikke synkronisere dataene dine. Oppdater passordfrasen for synkronisering.</translation>
-<translation id="127345590676626841">Chrome oppdateres automatisk, sånn at du alltid har den nyeste versjonen. Når denne nedlastingen er fullført, kommer Chrome til å starte på nytt, og du er i gang.</translation>
 <translation id="1302523850133262269">Vent mens Chrome installerer de nyeste systemoppdateringene.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Oppsøk brukerstøtten</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Vilkår for Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS kunne ikke synkronisere dataene dine fordi synkronisering ikke er tilgjengelig for domenet ditt.</translation>
 <translation id="7459554271817304652">Konfigurer Synkronisering til å lagre de personlig tilpassede nettleserfunksjonene dine på nettet slik at du kan bruke dem fra Google Chrome på enhver datamaskin.</translation>
-<translation id="7473136999113284234">Chrome oppdateres automatisk, sånn at du alltid har den nyeste versjonen.</translation>
 <translation id="7486227612705979895">Chrome får tilgang til Disk-lagringen din for å kunne gi deg forslag i adressefeltet</translation>
 <translation id="7531671357096394523">Avslutt alle kopier av Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pl.xtb b/chrome/app/resources/google_chrome_strings_pl.xtb
index 813f2d3..e6a3345 100644
--- a/chrome/app/resources/google_chrome_strings_pl.xtb
+++ b/chrome/app/resources/google_chrome_strings_pl.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Nie można zaktualizować Chrome</translation>
 <translation id="1154147086299354128">&amp;Otwórz w Chrome</translation>
 <translation id="123620459398936149">System operacyjny Chrome nie może zsynchronizować danych. Zaktualizuj hasło synchronizacji.</translation>
-<translation id="127345590676626841">Chrome aktualizuje się automatycznie, więc zawsze masz najnowszą wersję. Po zakończeniu pobierania Chrome uruchomi się ponownie i będzie gotowy do działania.</translation>
 <translation id="1302523850133262269">Poczekaj, aż Chrome zainstaluje najnowsze aktualizacje systemu.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Pomoc do Chrome</translation>
@@ -213,7 +212,6 @@
 <translation id="7408085963519505752">Warunki korzystania z Chrome OS</translation>
 <translation id="7419046106786626209">System operacyjny Chrome nie może zsynchronizować danych, ponieważ synchronizacja jest niedostępna w Twojej domenie.</translation>
 <translation id="7459554271817304652">Skonfiguruj synchronizację, by zapisać w internecie własne funkcje przeglądarki i mieć do nich dostęp w Google Chrome na każdym komputerze.</translation>
-<translation id="7473136999113284234">Chrome aktualizuje się automatycznie, więc zawsze masz najnowszą wersję.</translation>
 <translation id="7486227612705979895">Chrome będzie mieć dostęp do Dysku, by wyświetlać podpowiedzi na pasku adresu</translation>
 <translation id="7531671357096394523">Zamknij wszystkie kopie Chrome.</translation>
 <translation id="7535429826459677826">Wersja deweloperska 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 7c2197c3..18fa6a4a 100644
--- a/chrome/app/resources/google_chrome_strings_pt-BR.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-BR.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Não é possível atualizar o Chrome</translation>
 <translation id="1154147086299354128">&amp;Abrir no Chrome</translation>
 <translation id="123620459398936149">O Google Chrome não pôde sincronizar seus dados. Atualize sua senha de sincronização.</translation>
-<translation id="127345590676626841">O Chrome é atualizado automaticamente para que você sempre tenha a versão mais recente. Quando o download estiver concluído, o Chrome será reiniciado e você estará pronto.</translation>
 <translation id="1302523850133262269">Aguarde enquanto o Chrome instala as últimas atualizações do sistema.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obter ajuda para usar o Google Chrome</translation>
@@ -213,7 +212,6 @@
 <translation id="7408085963519505752">Termos do Chrome OS</translation>
 <translation id="7419046106786626209">O Chrome OS não pôde sincronizar seus dados porque a sincronização não está disponível para seu domínio.</translation>
 <translation id="7459554271817304652">Configure a sincronização para salvar seus recursos de navegador personalizados na web e acessá-los do Google Chrome em qualquer computador.</translation>
-<translation id="7473136999113284234">O Google Chrome é atualizado automaticamente para que você tenha sempre a versão mais recente.</translation>
 <translation id="7486227612705979895">O Chrome acessará seu Drive para fazer sugestões na barra de endereço</translation>
 <translation id="7531671357096394523">Saia de todas as cópias do Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_pt-PT.xtb b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
index ea4f2ac..560a20f 100644
--- a/chrome/app/resources/google_chrome_strings_pt-PT.xtb
+++ b/chrome/app/resources/google_chrome_strings_pt-PT.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Não é possível atualizar o Chrome</translation>
 <translation id="1154147086299354128">&amp;Abrir no Chrome</translation>
 <translation id="123620459398936149">O Chrome OS não conseguiu sincronizar os dados. Atualize a sua frase de acesso de sincronização.</translation>
-<translation id="127345590676626841">O Chrome é atualizado automaticamente para que tenha sempre a versão mais recente. Quando a transferência estiver concluída, o Chrome irá reiniciar e o processo estará terminado.</translation>
 <translation id="1302523850133262269">Aguarde até que o Chrome instale as atualizações do sistema mais recentes.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obter ajuda para utilizar o Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Termos do Chrome OS</translation>
 <translation id="7419046106786626209">O Chrome OS não conseguiu sincronizar os dados porque a sincronização não está disponível para o seu domínio.</translation>
 <translation id="7459554271817304652">Configure a Sincronização para guardar as suas funcionalidades personalizadas do navegador para a Web e aceder às mesmas a partir do Google Chrome em qualquer computador.</translation>
-<translation id="7473136999113284234">O Chrome é atualizado automaticamente para que tenha sempre a versão mais recente.</translation>
 <translation id="7486227612705979895">O Chrome vai aceder ao Drive para fornecer sugestões na barra de endereço.</translation>
 <translation id="7531671357096394523">Saia de todas as cópias do Chrome</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ro.xtb b/chrome/app/resources/google_chrome_strings_ro.xtb
index 7f6ecd6..51ac5e5 100644
--- a/chrome/app/resources/google_chrome_strings_ro.xtb
+++ b/chrome/app/resources/google_chrome_strings_ro.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome nu se poate actualiza</translation>
 <translation id="1154147086299354128">&amp;Deschide în Chrome</translation>
 <translation id="123620459398936149">Sistemul de operare Chrome nu a putut sincroniza datele. Actualizați parola de acces pentru sincronizare.</translation>
-<translation id="127345590676626841">Chrome se actualizează automat, deci vei avea întotdeauna cea mai recentă versiune. După această descărcare, Chrome va reporni și va fi gata de utilizare.</translation>
 <translation id="1302523850133262269">Așteaptă până când Chrome instalează cele mai recente actualizări de sistem.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Obțineți ajutor în legătură cu utilizarea Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Termeni și condiții pentru sistemul de operare Chrome</translation>
 <translation id="7419046106786626209">Sistemul de operare Chrome nu a putut sincroniza datele, deoarece sincronizarea nu este disponibilă pentru domeniul dvs.</translation>
 <translation id="7459554271817304652">Configurați sincronizarea pentru a salva funcțiile personalizate ale browserului pe web și accesați-le din Google Chrome de pe orice computer.</translation>
-<translation id="7473136999113284234">Chrome se actualizează automat, deci vei avea întotdeauna cea mai recentă versiune.</translation>
 <translation id="7486227612705979895">Chrome îți va accesa spațiul de stocare Drive pentru a face sugestii în bara de adrese</translation>
 <translation id="7531671357096394523">Închide toate copiile de Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ru.xtb b/chrome/app/resources/google_chrome_strings_ru.xtb
index cf979fb..55c220b 100644
--- a/chrome/app/resources/google_chrome_strings_ru.xtb
+++ b/chrome/app/resources/google_chrome_strings_ru.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Не удалось обновить Chrome</translation>
 <translation id="1154147086299354128">&amp;Открыть в Chrome</translation>
 <translation id="123620459398936149">Не удалось синхронизировать данные. Обновите кодовую фразу в Sync.</translation>
-<translation id="127345590676626841">Chrome обновляется автоматически, поэтому у вас всегда будет установлена последняя версия. После завершения скачивания и перезагрузки вы сможете продолжить работу.</translation>
 <translation id="1302523850133262269">Подождите, пока Chrome устанавливает последние обновления системы</translation>
 <translation id="137466361146087520">Google Chrome (бета)</translation>
 <translation id="1393853151966637042">Справочный центр</translation>
@@ -213,7 +212,6 @@
 <translation id="7408085963519505752">Условия использования Chrome OS</translation>
 <translation id="7419046106786626209">Не удалось синхронизировать данные, поскольку сервис Sync недоступен в вашем домене.</translation>
 <translation id="7459554271817304652">Чтобы сохранить персонализированные функции для работы в Интернете и получить доступ к ним из Google Chrome на любом компьютере, необходимо настроить синхронизацию.</translation>
-<translation id="7473136999113284234">Chrome обновляется автоматически, поэтому у вас всегда будет установлена последняя версия.</translation>
 <translation id="7486227612705979895">Chrome получит доступ к Google Диску, чтобы вы могли просматривать рекомендации в адресной строке</translation>
 <translation id="7531671357096394523">Закройте все экземпляры Chrome</translation>
 <translation id="7535429826459677826">Google Chrome для разработчиков</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sk.xtb b/chrome/app/resources/google_chrome_strings_sk.xtb
index fd30c0eb..89da1df 100644
--- a/chrome/app/resources/google_chrome_strings_sk.xtb
+++ b/chrome/app/resources/google_chrome_strings_sk.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chrome sa nedá aktualizovať</translation>
 <translation id="1154147086299354128">&amp;Otvoriť v Chrome</translation>
 <translation id="123620459398936149">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje. Aktualizujte prístupovú frázu synchronizácie.</translation>
-<translation id="127345590676626841">Chrome sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu. Po dokončení sťahovania sa Chrome reštartujte a začnete používať aktuálnu verziu.</translation>
 <translation id="1302523850133262269">Počkajte, kým Chrome nainštaluje najnovšie aktualizácie systému.</translation>
 <translation id="137466361146087520">Google Chrome beta verzie</translation>
 <translation id="1393853151966637042">Získajte pomoc pri používaní prehliadača Chrome</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Zmluvné podmienky systému OS Chrome</translation>
 <translation id="7419046106786626209">Systému OS Chrome sa nepodarilo synchronizovať vaše údaje, pretože možnosť synchronizácie nie je pre vašu doménu k dispozícii.</translation>
 <translation id="7459554271817304652">Ak chcete uložiť svoje prispôsobené funkcie prehliadača na webe a pristupovať k nim z prehliadača Google Chrome v ktoromkoľvek počítači, nastavte synchronizáciu.</translation>
-<translation id="7473136999113284234">Chrome sa aktualizuje automaticky, aby ste mali vždy k dispozícii najnovšiu verziu.</translation>
 <translation id="7486227612705979895">Chrome bude mať prístup na váš Disk, aby mohol v paneli s adresou zobrazovať návrhy</translation>
 <translation id="7531671357096394523">Zavrite všetky okná Chromu.</translation>
 <translation id="7535429826459677826">Google Chrome verzie pre vývojárov</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sl.xtb b/chrome/app/resources/google_chrome_strings_sl.xtb
index a861e72..c207835 100644
--- a/chrome/app/resources/google_chrome_strings_sl.xtb
+++ b/chrome/app/resources/google_chrome_strings_sl.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Chroma ni mogoče posodobiti</translation>
 <translation id="1154147086299354128">&amp;Odpri v Chromu</translation>
 <translation id="123620459398936149">Chrome OS ne more sinhronizirati vaših podatkov. Posodobite geslo za Google Sync.</translation>
-<translation id="127345590676626841">Chrome se samodejno posodablja, zato boste vedno imeli najnovejšo različico. Ko bo ta prenos končan, se bo Chrome znova zagnal in lahko boste nadaljevali z delom.</translation>
 <translation id="1302523850133262269">Počakajte, da Chrome namesti najnovejše sistemske posodobitve.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Pomoč pri uporabi Google Chroma</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Pogoji za Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS ni mogel sinhronizirati podatkov, ker sinhronizacija ni na voljo za vašo domeno.</translation>
 <translation id="7459554271817304652">Nastavite sinhronizacijo, da prilagojene funkcije brskalnika shranite v spletu in do njih v Google Chromu dostopate v katerem koli računalniku.</translation>
-<translation id="7473136999113284234">Chrome se samodejno posodablja, zato boste vedno imeli najnovejšo različico.</translation>
 <translation id="7486227612705979895">Chrome bo dostopal do Googla Drive zaradi ponujanja predlogov v naslovni vrstici</translation>
 <translation id="7531671357096394523">Zapiranje vseh kopij Chroma.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sr.xtb b/chrome/app/resources/google_chrome_strings_sr.xtb
index 05851db3..52b3cf3 100644
--- a/chrome/app/resources/google_chrome_strings_sr.xtb
+++ b/chrome/app/resources/google_chrome_strings_sr.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Не можете да ажурирате Chrome</translation>
 <translation id="1154147086299354128">&amp;Отвори у Chrome-у</translation>
 <translation id="123620459398936149">Chrome ОС не може да синхронизује податке. Ажурирајте приступну фразу за Синхронизацију.</translation>
-<translation id="127345590676626841">Chrome се аутоматски ажурира, па увек имате најновију верзију. Када ово преузимање буде довршено, Chrome ће се поново покренути и бићете спремни.</translation>
 <translation id="1302523850133262269">Сачекајте да Chrome инсталира најновија ажурирања система.</translation>
 <translation id="137466361146087520">Google Chrome бета</translation>
 <translation id="1393853151966637042">Пронађи помоћ за коришћење Chrome-а</translation>
@@ -222,7 +221,6 @@
 <translation id="7408085963519505752">Chrome ОС услови</translation>
 <translation id="7419046106786626209">Chrome ОС не може да синхронизује податке јер Синхронизација није доступна за домен.</translation>
 <translation id="7459554271817304652">Подесите Синхронизацију како бисте сачували персонализоване функције прегледача на Веб и приступали им из Google Chrome-а на било ком рачунару.</translation>
-<translation id="7473136999113284234">Chrome се аутоматски ажурира, па увек имате најновију верзију.</translation>
 <translation id="7486227612705979895">Chrome ће приступати Диску да би приказивао предлоге на траци за адресу</translation>
 <translation id="7531671357096394523">Затворите све копије Chrome-а.</translation>
 <translation id="7535429826459677826">Програмерска верзија Google Chrome-а</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sv.xtb b/chrome/app/resources/google_chrome_strings_sv.xtb
index 6cc9410..cbdd411 100644
--- a/chrome/app/resources/google_chrome_strings_sv.xtb
+++ b/chrome/app/resources/google_chrome_strings_sv.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Det gick inte att uppdatera Chrome</translation>
 <translation id="1154147086299354128">&amp;Öppna i Chrome</translation>
 <translation id="123620459398936149">Det gick inte att synkronisera data med Chrome OS. Uppdatera lösenfrasen för synkronisering.</translation>
-<translation id="127345590676626841">Chrome uppdateras automatiskt så att du alltid har den senaste versionen. När den här nedladdningen är klar startas Chrome om och sedan är du igång.</translation>
 <translation id="1302523850133262269">Vänta medan de senaste systemuppdateringarna installeras av Chrome.</translation>
 <translation id="137466361146087520">Google Chrome beta</translation>
 <translation id="1393853151966637042">Få hjälp med att använda Chrome</translation>
@@ -223,7 +222,6 @@
 <translation id="7408085963519505752">Villkor för Chrome OS</translation>
 <translation id="7419046106786626209">Det gick inte att synkronisera data med Chrome OS eftersom synkronisering inte är tillgängligt för din domän.</translation>
 <translation id="7459554271817304652">Ställ in synkronisering och spara dina anpassade webbläsarfunktioner på Internet så att du kan använda dem i Google Chrome på vilken dator som helst.</translation>
-<translation id="7473136999113284234">Chrome uppdateras automatiskt så att du alltid har den senaste versionen.</translation>
 <translation id="7486227612705979895">Chrome får åtkomst till din Drive så att du kan få förslag därifrån i adressfältet</translation>
 <translation id="7531671357096394523">Stäng alla kopior av Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_sw.xtb b/chrome/app/resources/google_chrome_strings_sw.xtb
index d6daf37..a52dfb0 100644
--- a/chrome/app/resources/google_chrome_strings_sw.xtb
+++ b/chrome/app/resources/google_chrome_strings_sw.xtb
@@ -15,7 +15,6 @@
 <translation id="1142745911746664600">Imeshindwa kusasisha Chrome</translation>
 <translation id="1154147086299354128">na Fungua katika Chrome</translation>
 <translation id="123620459398936149">Mfumo wa Uendeshaji wa Chrome haukuweza kusawazisha data yako. Tafadhali sasisha kauli ya siri unayotumia Kusawazisha.</translation>
-<translation id="127345590676626841">Chrome husasisha kiotomatiki ili uwe na toleo jipya zaidi wakati wowote. Upakuaji huu unapokamilika, Chrome itajizima na kuwaka tena na utaanza kutumia.</translation>
 <translation id="1302523850133262269">Tafadhali subiri Chrome inaposakinisha sasisho mpya za mfumo.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Pata usaidizi wa kutumia Chrome</translation>
@@ -221,7 +220,6 @@
 <translation id="7408085963519505752">Masharti ya Chrome OS</translation>
 <translation id="7419046106786626209">Mfumo wa Uendeshaji wa Chrome haukuweza kusawazisha data yako kwa sababu Usawazishaji haupatikani katika kikoa chako.</translation>
 <translation id="7459554271817304652">Sanidi Usawazishaji ili kuhifadhi vipengele vyako vya kivinjari vilivyobinafsishwa kwenye mtandao na uvifikie kutoka Google Chrome kwenye kompyuta yoyote.</translation>
-<translation id="7473136999113284234">Chrome husasisha kiotomatiki ili uwe na toleo jipya zaidi wakati wowote.</translation>
 <translation id="7486227612705979895">Chrome itafikia Hifadhi yako ili kutoa mapendekezo kwenye sehemu ya anwani</translation>
 <translation id="7531671357096394523">Funga nakala zote za Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_ta.xtb b/chrome/app/resources/google_chrome_strings_ta.xtb
index be3a94e..fc284a6 100644
--- a/chrome/app/resources/google_chrome_strings_ta.xtb
+++ b/chrome/app/resources/google_chrome_strings_ta.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chromeஐப் புதுப்பிக்க முடியவில்லை</translation>
 <translation id="1154147086299354128">&amp;Chrome இல் திற</translation>
 <translation id="123620459398936149">உங்கள் தரவை Chrome OS ஆல் ஒத்திசைக்க முடியவில்லை. உங்கள் கடவுச்சொற்றொடரைப் புதுப்பிக்கவும்.</translation>
-<translation id="127345590676626841">Chrome தானாகவே புதுப்பித்துக்கொள்வதால், எப்போதுமே புதிய பதிப்பைப் பெறுவீர்கள். இந்தப் பதிவிறக்கம் முடியும்போது, Chrome மறுதொடக்கம் செய்யும், பிறகு உங்கள் பணியைத் தொடரலாம்.</translation>
 <translation id="1302523850133262269">சமீபத்திய முறைமை புதுப்பிப்புகளை Chrome நிறுவும் வரை காத்திருக்கவும்.</translation>
 <translation id="137466361146087520">Google Chrome பீட்டா</translation>
 <translation id="1393853151966637042">Chrome ஐப் பயன்படுத்தி உதவி பெறுக</translation>
@@ -214,7 +213,6 @@
 <translation id="7408085963519505752">Chrome OS விதிமுறைகள்</translation>
 <translation id="7419046106786626209">உங்கள் களத்திற்கு ஒத்திசைவு கிடைக்கவில்லை என்பதால், Chrome OS ஆல் உங்கள் தரவை ஒத்திசைக்க முடியவில்லை.</translation>
 <translation id="7459554271817304652">உங்கள் தனிப்பயனாக்கப்பட்ட உலாவி அம்சங்களை வலையில் சேமிக்க, ஒத்திசைவை அமைத்து, எந்தக் கம்ப்யூட்டரிலும் Google Chromiumமிலிருந்து அவற்றை அணுகலாம்.</translation>
-<translation id="7473136999113284234">Chrome தானாகவே புதுப்பித்துக்கொள்வதால், எப்போதுமே புதிய பதிப்பைப் பெறுவீர்கள்.</translation>
 <translation id="7486227612705979895">முகவரிப் பட்டியில் பரிந்துரைகளை வழங்க, Chrome உங்கள் இயக்ககத்தை அணுகும்</translation>
 <translation id="7531671357096394523">Chromeமின் அனைத்து நேர்வுகளில் இருந்தும் வெளியேறுதல்.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_te.xtb b/chrome/app/resources/google_chrome_strings_te.xtb
index 49da4da71..fdb9422 100644
--- a/chrome/app/resources/google_chrome_strings_te.xtb
+++ b/chrome/app/resources/google_chrome_strings_te.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chromeను అప్‌డేట్ చేయడం సాధ్యం కాదు</translation>
 <translation id="1154147086299354128">&amp;Chromeలో తెరువు</translation>
 <translation id="123620459398936149">Chrome OS మీ డేటాను సింక్ చేయ‌లేక‌పోయింది. దయచేసి మీ సింక్‌ రహస్య పదబంధాన్ని అప్‌డేట్ చేయండి.</translation>
-<translation id="127345590676626841">Chrome ఆటోమేటిక్‌గా అప్‌డేట్ చేయబడుతుంది కాబట్టి మీరు ఎప్పుడూ తాజా వెర్షన్‌ను కలిగి ఉంటారు. ఈ డౌన్‌లోడ్ పూర్తయినప్పుడు, Chrome పునఃప్రారంభించబడుతుంది, మీరు మీ పనిని కొనసాగించవచ్చు.</translation>
 <translation id="1302523850133262269">దయచేసి Chrome తాజా సిస్టమ్ నవీకరణలను ఇన్‌స్టాల్ చేస్తున్నప్పుడు వేచి ఉండండి.</translation>
 <translation id="137466361146087520">Google Chrome బీటా</translation>
 <translation id="1393853151966637042">Chromeను ఉపయోగించడం గురించి సహాయాన్ని పొందండి</translation>
@@ -212,7 +211,6 @@
 <translation id="7408085963519505752">Chrome OS నిబంధనలు</translation>
 <translation id="7419046106786626209">మీ డొమైన్ కోసం సింక్‌ అందుబాటులో లేనందున Chrome OS మీ డేటాను సింక్ చేయ‌లేక‌పోయింది.</translation>
 <translation id="7459554271817304652">వెబ్‌కు మీ వ్యక్తిగతీకరించిన‌ బ్రౌజర్ ఫీచ‌ర్‌ల‌ను సేవ్ చేయడానికి మరియు ఏదైనా కంప్యూటర్‌లోని Google Chrome నుండి అయినా వాటిని యాక్సెస్‌ చేయడానికి సింక్‌ను సెటప్ చేయండి.</translation>
-<translation id="7473136999113284234">Chrome ఆటోమేటిక్‌గా అప్‌డేట్ అవుతుంది కాబట్టి మీ వద్ద ఎప్పుడూ తాజా వెర్షన్ ఉంటుంది.</translation>
 <translation id="7486227612705979895">చిరునామా బార్‌లో సూచనలను చేయడానికి Chrome మీ డిస్క్‌ను యాక్సెస్ చేస్తుంది</translation>
 <translation id="7531671357096394523">Chrome యొక్క అన్ని కాపీల నుండి నిష్క్రమించండి.</translation>
 <translation id="7535429826459677826">Google Chrome డెవలపర్</translation>
diff --git a/chrome/app/resources/google_chrome_strings_th.xtb b/chrome/app/resources/google_chrome_strings_th.xtb
index 5ff0bd7..dfea986f 100644
--- a/chrome/app/resources/google_chrome_strings_th.xtb
+++ b/chrome/app/resources/google_chrome_strings_th.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">อัปเดต Chrome ไม่ได้</translation>
 <translation id="1154147086299354128">เ&amp;ปิดใน Chrome</translation>
 <translation id="123620459398936149">Chrome OS ไม่สามารถซิงค์ข้อมูลของคุณ โปรดอัปเดตข้อความรหัสผ่านสำหรับการซิงค์</translation>
-<translation id="127345590676626841">Chrome ทำการอัปเดตโดยอัตโนมัติเพื่อให้คุณมีเวอร์ชันใหม่ล่าสุดเสมอ เมื่อดาวน์โหลดเสร็จ Chrome จะรีสตาร์ท และคุณจะสามารถใช้งานได้ทันที</translation>
 <translation id="1302523850133262269">โปรดรอขณะที่ Chrome ติดตั้งการอัปเดตระบบล่าสุด</translation>
 <translation id="137466361146087520">Google Chrome เบต้า</translation>
 <translation id="1393853151966637042">รับความช่วยเหลือเกี่ยวกับการใช้ Chrome</translation>
@@ -212,7 +211,6 @@
 <translation id="7408085963519505752">ข้อกำหนดของ Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS ไม่สามารถซิงค์ข้อมูลของคุณเนื่องจากการซิงค์ไม่พร้อมให้บริการสำหรับโดเมนของคุณ</translation>
 <translation id="7459554271817304652">ตั้งค่าการซิงค์เพื่อบัน​​ทึกฟีเจอร์เบราว์เซอร์ในแบบของคุณไปยังเว็บและเข้าถึงได้จาก Google Chrome บนคอมพิวเตอร์เครื่องใดก็ได้</translation>
-<translation id="7473136999113284234">Chrome จะอัปเดตโดยอัตโนมัติเพื่อให้คุณได้ใช้เวอร์ชันใหม่ล่าสุดอยู่เสมอ</translation>
 <translation id="7486227612705979895">Chrome จะเข้าถึงไดรฟ์ของคุณเพื่อแสดงคำแนะนำในแถบที่อยู่</translation>
 <translation id="7531671357096394523">ปิด Chrome ทุกสำเนา</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_tr.xtb b/chrome/app/resources/google_chrome_strings_tr.xtb
index 01b3634..f9292ef 100644
--- a/chrome/app/resources/google_chrome_strings_tr.xtb
+++ b/chrome/app/resources/google_chrome_strings_tr.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Chrome güncellenemiyor</translation>
 <translation id="1154147086299354128">&amp;Chrome'da aç</translation>
 <translation id="123620459398936149">Chrome OS, verilerinizi senkronize edemedi. Lütfen Senkronizasyon parolanızı güncelleyin.</translation>
-<translation id="127345590676626841">Chrome otomatik olarak güncellenerek her zaman en yeni sürüme sahip olmanızı sağlar. Bu indirme işlemi tamamlandığında Chrome yeniden başlatılacak ve yolunuza devam edeceksiniz.</translation>
 <translation id="1302523850133262269">Chrome en son sistem güncellemelerini yüklerken lütfen bekleyin.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Chrome'u kullanma konusunda yardım alın</translation>
@@ -217,7 +216,6 @@
 <translation id="7408085963519505752">Chrome OS Şartları</translation>
 <translation id="7419046106786626209">Senkronizasyon, alan adınızda kullanılamadığından Chrome OS, verilerinizi senkronize edemedi.</translation>
 <translation id="7459554271817304652">Kişiselleştirilmiş tarayıcı özelliklerinizi Web'e kaydetmek ve herhangi bir bilgisayardan Google Chrome'u kullanarak bu özelliklere erişmek için senkronizasyonu ayarlayın.</translation>
-<translation id="7473136999113284234">Chrome otomatik olarak güncellenir, böylece her zaman en yeni sürüme sahip olursunuz.</translation>
 <translation id="7486227612705979895">Chrome, adres çubuğunda öneriler göstermek için Drive'ınıza erişecektir</translation>
 <translation id="7531671357096394523">Tüm Chrome kopyalarından çık.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_uk.xtb b/chrome/app/resources/google_chrome_strings_uk.xtb
index 374e0ae4..98d8020 100644
--- a/chrome/app/resources/google_chrome_strings_uk.xtb
+++ b/chrome/app/resources/google_chrome_strings_uk.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Не вдається оновити Chrome</translation>
 <translation id="1154147086299354128">&amp;Відкрити в Chrome</translation>
 <translation id="123620459398936149">ОС Chrome не вдалося синхронізувати ваші дані. Оновіть свою парольну фразу для синхронізації.</translation>
-<translation id="127345590676626841">Chrome оновлюється автоматично, щоб у вас завжди була найновіша версія. Коли це завантаження завершиться, Chrome перезапуститься, і ви зможете продовжувати роботу.</translation>
 <translation id="1302523850133262269">Зачекайте, доки Chrome установить найновіші оновлення системи.</translation>
 <translation id="137466361146087520">Бета-версія Google Chrome</translation>
 <translation id="1393853151966637042">Отримати довідку щодо користування Chrome</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Умови ОС Chrome</translation>
 <translation id="7419046106786626209">ОС Chrome не вдалося синхронізувати ваші дані, оскільки синхронізація для вашого домену недоступна.</translation>
 <translation id="7459554271817304652">Налаштуйте синхронізацію, щоб зберегти свої персоналізовані функції веб-переглядача в Інтернеті й мати до них доступ із Google Chrome на будь-якому комп’ютері.</translation>
-<translation id="7473136999113284234">Chrome оновлюється автоматично, щоб у вас завжди була найновіша версія.</translation>
 <translation id="7486227612705979895">Chrome матиме доступ до Диска, щоб робити пропозиції в адресному рядку</translation>
 <translation id="7531671357096394523">Закрийте всі копії Chrome.</translation>
 <translation id="7535429826459677826">Версія Google Chrome для розробників</translation>
diff --git a/chrome/app/resources/google_chrome_strings_vi.xtb b/chrome/app/resources/google_chrome_strings_vi.xtb
index f5adb542..e0806e2a 100644
--- a/chrome/app/resources/google_chrome_strings_vi.xtb
+++ b/chrome/app/resources/google_chrome_strings_vi.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">Không thể cập nhật Chrome</translation>
 <translation id="1154147086299354128">&amp;Mở trong Chrome</translation>
 <translation id="123620459398936149">Chrome OS không thể đồng bộ hóa dữ liệu của bạn. Vui lòng cập nhật cụm mật khẩu Đồng bộ hóa của bạn.</translation>
-<translation id="127345590676626841">Chrome tự động cập nhật nên bạn luôn có phiên bản mới nhất. Khi quá trình tải xuống này hoàn tất, Chrome sẽ khởi động lại và bạn có thể tiếp tục sử dụng.</translation>
 <translation id="1302523850133262269">Vui lòng đợi khi Chrome cài đặt các bản cập nhật hệ thống mới nhất.</translation>
 <translation id="137466361146087520">Google Chrome Beta</translation>
 <translation id="1393853151966637042">Nhận trợ giúp sử dụng Chrome</translation>
@@ -219,7 +218,6 @@
 <translation id="7408085963519505752">Điều khoản của Chrome OS</translation>
 <translation id="7419046106786626209">Chrome OS không thể đồng bộ hóa dữ liệu của bạn vì Đồng bộ hóa không khả dụng với miền của bạn.</translation>
 <translation id="7459554271817304652">Thiết lập đồng bộ hóa để lưu các tính năng trình duyệt được cá nhân hóa của bạn vào web và truy cập chúng từ Google Chrome trên bất kỳ máy tính nào.</translation>
-<translation id="7473136999113284234">Chrome tự động cập nhật nên bạn luôn có phiên bản mới nhất.</translation>
 <translation id="7486227612705979895">Chrome sẽ truy cập vào Drive của bạn để đưa ra đề xuất trên thanh địa chỉ</translation>
 <translation id="7531671357096394523">Đóng tất cả các bản sao của Chrome.</translation>
 <translation id="7535429826459677826">Google Chrome Dev</translation>
diff --git a/chrome/app/resources/google_chrome_strings_zh-CN.xtb b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
index 064c4f588..3ca4cca 100644
--- a/chrome/app/resources/google_chrome_strings_zh-CN.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-CN.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">无法更新 Chrome</translation>
 <translation id="1154147086299354128">在 Chrome 中打开(&amp;O)</translation>
 <translation id="123620459398936149">Chrome操作系统无法同步您的数据。请更新您的同步密码。</translation>
-<translation id="127345590676626841">Chrome会自动更新,因此您使用的始终都是最新版本。更新内容下载完毕后,Chrome会重新启动,然后您就可以开始使用了。</translation>
 <translation id="1302523850133262269">Chrome正在安装最新的系统更新,请稍候。</translation>
 <translation id="137466361146087520">Google Chrome 测试版</translation>
 <translation id="1393853151966637042">获取 Chrome 浏览器使用帮助</translation>
@@ -215,7 +214,6 @@
 <translation id="7408085963519505752">Chrome操作系统条款</translation>
 <translation id="7419046106786626209">由于您的网域停用了同步功能,Chrome操作系统无法同步您的数据。</translation>
 <translation id="7459554271817304652">您可以设置同步以将个性化浏览器功能保存到网上,以便在任意计算机上的 Google Chrome 浏览器中使用这些功能。</translation>
-<translation id="7473136999113284234">Chrome会自动更新,因此您使用的始终都是最新版本。</translation>
 <translation id="7486227612705979895">Chrome 将访问您的云端硬盘,以在地址栏提供建议</translation>
 <translation id="7531671357096394523">退出 Chrome 的所有副本。</translation>
 <translation id="7535429826459677826">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 c0ee06d5..0256a11 100644
--- a/chrome/app/resources/google_chrome_strings_zh-TW.xtb
+++ b/chrome/app/resources/google_chrome_strings_zh-TW.xtb
@@ -13,7 +13,6 @@
 <translation id="1142745911746664600">無法更新 Chrome</translation>
 <translation id="1154147086299354128">在 Chrome 中開啟(&amp;O)</translation>
 <translation id="123620459398936149">Chrome OS 無法同步處理你的資料,請更新你的同步通關密語。</translation>
-<translation id="127345590676626841">Chrome 會自動更新,隨時讓你使用最新版本。完成這項下載作業後,Chrome 會重新啟動,自動為你進行更新。</translation>
 <translation id="1302523850133262269">請稍候,Chrome 正在安裝最新的系統更新。</translation>
 <translation id="137466361146087520">Google Chrome 測試版</translation>
 <translation id="1393853151966637042">前往 Chrome 說明頁面</translation>
@@ -217,14 +216,13 @@
 <translation id="7408085963519505752">Chrome 作業系統條款</translation>
 <translation id="7419046106786626209">你的網域無法使用「同步功能」,因此 Chrome 作業系統無法同步處理你的資料。</translation>
 <translation id="7459554271817304652">設定同步處理功能,即可在網路上儲存你的個人化瀏覽器功能,並且透過任何電腦從 Google Chrome 使用這些功能。</translation>
-<translation id="7473136999113284234">Chrome 會自動更新,隨時讓你使用最新版本。</translation>
 <translation id="7486227612705979895">Chrome 將存取你的雲端硬碟,並在網址列提供建議</translation>
 <translation id="7531671357096394523">請關閉所有 Chrome 瀏覽器。</translation>
 <translation id="7535429826459677826">Google Chrome 開發人員版</translation>
 <translation id="7589360514048265910">我們已不支援 Mac OS X 10.9,因此這部電腦不會再收到 Google Chrome 更新。</translation>
 <translation id="7592736734348559088">你的帳戶登入詳細資料尚未更新,因此 Google Chrome 無法同步處理你的資料。</translation>
 <translation id="7626032353295482388">歡迎使用 Chrome</translation>
-<translation id="7629695634924605473">Chrome 會通知你密碼是否曾遭到盜用</translation>
+<translation id="7629695634924605473">Chrome 會通知你密碼是否曾遭外洩</translation>
 <translation id="7641148173327520642">你的系統管理員已設定由 Google Chrome 開啟 <ph name="ALTERNATIVE_BROWSER_NAME" /> 以存取 <ph name="TARGET_URL_HOSTNAME" />。</translation>
 <translation id="7651907282515937834">Chrome Enterprise 標誌</translation>
 <translation id="7747138024166251722">安裝程式無法建立暫時目錄,請檢查可用磁碟空間與權限,以順利安裝軟體。</translation>
diff --git a/chrome/browser/BUILD.gn b/chrome/browser/BUILD.gn
index 4b3c71c9..080355a 100644
--- a/chrome/browser/BUILD.gn
+++ b/chrome/browser/BUILD.gn
@@ -1380,18 +1380,18 @@
     "previews/previews_content_util.cc",
     "previews/previews_content_util.h",
     "previews/previews_https_notification_infobar_decider.h",
-    "previews/previews_lite_page_decider.cc",
-    "previews/previews_lite_page_decider.h",
     "previews/previews_lite_page_infobar_delegate.cc",
     "previews/previews_lite_page_infobar_delegate.h",
-    "previews/previews_lite_page_predictor.cc",
-    "previews/previews_lite_page_predictor.h",
+    "previews/previews_lite_page_redirect_decider.cc",
+    "previews/previews_lite_page_redirect_decider.h",
+    "previews/previews_lite_page_redirect_predictor.cc",
+    "previews/previews_lite_page_redirect_predictor.h",
+    "previews/previews_lite_page_redirect_serving_url_loader.cc",
+    "previews/previews_lite_page_redirect_serving_url_loader.h",
     "previews/previews_lite_page_redirect_url_loader.cc",
     "previews/previews_lite_page_redirect_url_loader.h",
-    "previews/previews_lite_page_serving_url_loader.cc",
-    "previews/previews_lite_page_serving_url_loader.h",
-    "previews/previews_lite_page_url_loader_interceptor.cc",
-    "previews/previews_lite_page_url_loader_interceptor.h",
+    "previews/previews_lite_page_redirect_url_loader_interceptor.cc",
+    "previews/previews_lite_page_redirect_url_loader_interceptor.h",
     "previews/previews_offline_helper.cc",
     "previews/previews_offline_helper.h",
     "previews/previews_service.cc",
diff --git a/chrome/browser/about_flags.cc b/chrome/browser/about_flags.cc
index 4cbceba7..74f5cba 100644
--- a/chrome/browser/about_flags.cc
+++ b/chrome/browser/about_flags.cc
@@ -4591,14 +4591,16 @@
      flag_descriptions::kAndroidSetupSearchEngineName,
      flag_descriptions::kAndroidSetupSearchEngineDescription, kOsAndroid,
      FEATURE_VALUE_TYPE(chrome::android::kAndroidSetupSearchEngine)},
-#endif  // defined(OS_ANDROID)
-
-#if defined(OS_ANDROID)
     {"enable-clipboard-provider-text-suggestions",
      flag_descriptions::kEnableClipboardProviderTextSuggestionsName,
      flag_descriptions::kEnableClipboardProviderTextSuggestionsDescription,
      kOsAndroid,
      FEATURE_VALUE_TYPE(omnibox::kEnableClipboardProviderTextSuggestions)},
+    {"omnibox-remove-suggestions-from-clipboard",
+     flag_descriptions::kOmniboxRemoveSuggestionsFromClipboardName,
+     flag_descriptions::kOmniboxRemoveSuggestionsFromClipboardDescription,
+     kOsAndroid,
+     FEATURE_VALUE_TYPE(omnibox::kOmniboxRemoveSuggestionsFromClipboard)},
 #endif  // defined(OS_ANDROID)
 
     // NOTE: Adding a new flag requires adding a corresponding entry to enum
diff --git a/chrome/browser/chrome_content_browser_client.cc b/chrome/browser/chrome_content_browser_client.cc
index 7b4da7e..ff2b87b7f 100644
--- a/chrome/browser/chrome_content_browser_client.cc
+++ b/chrome/browser/chrome_content_browser_client.cc
@@ -99,8 +99,8 @@
 #include "chrome/browser/prerender/prerender_message_filter.h"
 #include "chrome/browser/prerender/prerender_util.h"
 #include "chrome/browser/previews/previews_content_util.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
@@ -3467,8 +3467,9 @@
 
   // Handler to rewrite Preview's Server Lite Page, to show the original URL to
   // the user.
-  handler->AddHandlerPair(&previews::HandlePreviewsLitePageURLRewrite,
-                          &previews::HandlePreviewsLitePageURLRewriteReverse);
+  handler->AddHandlerPair(
+      &previews::HandlePreviewsLitePageRedirectURLRewrite,
+      &previews::HandlePreviewsLitePageRedirectURLRewriteReverse);
 }
 
 base::FilePath ChromeContentBrowserClient::GetDefaultDownloadDirectory() {
@@ -4899,7 +4900,8 @@
   if (base::FeatureList::IsEnabled(
           previews::features::kLitePageServerPreviews)) {
     interceptors.push_back(
-        std::make_unique<previews::PreviewsLitePageURLLoaderInterceptor>(
+        std::make_unique<
+            previews::PreviewsLitePageRedirectURLLoaderInterceptor>(
             network_loader_factory,
             chrome_navigation_ui_data->data_reduction_proxy_page_id(),
             frame_tree_node_id));
diff --git a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h
index a43e038..3607188 100644
--- a/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h
+++ b/chrome/browser/chromeos/extensions/autotest_private/autotest_private_api.h
@@ -539,6 +539,8 @@
   void OnSuggestionsResponse(
       std::vector<AssistantSuggestionPtr> response) override {}
   void OnOpenUrlResponse(const GURL& url, bool in_background) override {}
+  void OnOpenAppResponse(chromeos::assistant::mojom::AndroidAppInfoPtr app_info,
+                         OnOpenAppResponseCallback callback) override {}
   void OnSpeechRecognitionStarted() override {}
   void OnSpeechRecognitionIntermediateResult(
       const std::string& high_confidence_text,
diff --git a/chrome/browser/chromeos/extensions/file_manager/event_router.cc b/chrome/browser/chromeos/extensions/file_manager/event_router.cc
index 02e5517..258f8ae2 100644
--- a/chrome/browser/chromeos/extensions/file_manager/event_router.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/event_router.cc
@@ -588,14 +588,6 @@
           crostini::kCrostiniDefaultVmName, crostini::prefs::kCrostiniEnabled,
           file_manager_private::CROSTINI_EVENT_TYPE_ENABLE,
           file_manager_private::CROSTINI_EVENT_TYPE_DISABLE));
-  pref_change_registrar_->Add(
-      crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy,
-      base::BindRepeating(
-          &EventRouter::OnCrostiniChanged, weak_factory_.GetWeakPtr(),
-          crostini::kCrostiniDefaultVmName,
-          crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy,
-          file_manager_private::CROSTINI_EVENT_TYPE_ROOT_ACCESS_ALLOW,
-          file_manager_private::CROSTINI_EVENT_TYPE_ROOT_ACCESS_DISALLOW));
   pref_change_registrar_->Add(arc::prefs::kArcEnabled, callback);
   pref_change_registrar_->Add(arc::prefs::kArcHasAccessToRemovableMedia,
                               callback);
diff --git a/chrome/browser/chromeos/extensions/file_manager/private_api_strings.cc b/chrome/browser/chromeos/extensions/file_manager/private_api_strings.cc
index 85f456e..6e00f86f 100644
--- a/chrome/browser/chromeos/extensions/file_manager/private_api_strings.cc
+++ b/chrome/browser/chromeos/extensions/file_manager/private_api_strings.cc
@@ -42,9 +42,6 @@
   dict->SetBoolean("CROSTINI_ENABLED",
                    crostini::IsCrostiniEnabled(
                        Profile::FromBrowserContext(browser_context())));
-  dict->SetBoolean("CROSTINI_ROOT_ACCESS_ALLOWED",
-                   crostini::IsCrostiniRootAccessAllowed(
-                       Profile::FromBrowserContext(browser_context())));
   dict->SetBoolean("FEEDBACK_PANEL_ENABLED",
                    base::FeatureList::IsEnabled(
                        chromeos::features::kEnableFileManagerFeedbackPanel));
diff --git a/chrome/browser/chromeos/extensions/users_private/users_private_api.cc b/chrome/browser/chromeos/extensions/users_private/users_private_api.cc
index cecf1fa..f8bbf22 100644
--- a/chrome/browser/chromeos/extensions/users_private/users_private_api.cc
+++ b/chrome/browser/chromeos/extensions/users_private/users_private_api.cc
@@ -61,6 +61,11 @@
   return !IsEnterpriseManaged() && IsOwnerProfile(profile) && !IsChild(profile);
 }
 
+bool IsExistingWhitelistedUser(const std::string& username) {
+  return chromeos::CrosSettings::Get()->FindEmailInList(
+      chromeos::kAccountsPrefUsers, username, /*wildcard_match=*/nullptr);
+}
+
 // Creates User object for the exising user_manager::User .
 api::users_private::User CreateApiUser(const std::string& email,
                                        const user_manager::User& user) {
@@ -87,27 +92,13 @@
   return api_user;
 }
 
-}  // anonymous namespace
-
-////////////////////////////////////////////////////////////////////////////////
-// UsersPrivateGetWhitelistedUsersFunction
-
-UsersPrivateGetWhitelistedUsersFunction::
-    UsersPrivateGetWhitelistedUsersFunction()
-    : chrome_details_(this) {
-}
-
-UsersPrivateGetWhitelistedUsersFunction::
-    ~UsersPrivateGetWhitelistedUsersFunction() {
-}
-
-ExtensionFunction::ResponseAction
-UsersPrivateGetWhitelistedUsersFunction::Run() {
-  Profile* profile = chrome_details_.GetProfile();
+std::unique_ptr<base::ListValue> GetUsersList(Profile* profile,
+                                      content::BrowserContext* browser_context)
+{
   std::unique_ptr<base::ListValue> user_list(new base::ListValue);
 
   if (!CanModifyWhitelistedUsers(profile))
-    return RespondNow(OneArgument(std::move(user_list)));
+    return user_list;
 
   // Create one list to set. This is needed because user white list update is
   // asynchronous and sequential. Before previous write comes back, cached list
@@ -115,7 +106,7 @@
   std::unique_ptr<base::ListValue> email_list;
 
   UsersPrivateDelegate* delegate =
-      UsersPrivateDelegateFactory::GetForBrowserContext(browser_context());
+      UsersPrivateDelegateFactory::GetForBrowserContext(browser_context);
   PrefsUtil* prefs_util = delegate->GetPrefsUtil();
 
   std::unique_ptr<api::settings_private::PrefObject> users_pref_object =
@@ -167,7 +158,52 @@
             .ToValue());
   }
 
-  return RespondNow(OneArgument(std::move(user_list)));
+  return user_list;
+}
+
+}  // anonymous namespace
+
+////////////////////////////////////////////////////////////////////////////////
+// UsersPrivateGetWhitelistedUsersFunction
+
+UsersPrivateGetWhitelistedUsersFunction::
+    UsersPrivateGetWhitelistedUsersFunction()
+    : chrome_details_(this) {
+}
+
+UsersPrivateGetWhitelistedUsersFunction::
+    ~UsersPrivateGetWhitelistedUsersFunction() {
+}
+
+ExtensionFunction::ResponseAction
+UsersPrivateGetWhitelistedUsersFunction::Run() {
+  Profile* profile = chrome_details_.GetProfile();
+  return RespondNow(OneArgument(GetUsersList(profile, browser_context())));
+}
+
+////////////////////////////////////////////////////////////////////////////////
+// UsersPrivateIsWhitelistedUserFunction
+
+UsersPrivateIsWhitelistedUserFunction::UsersPrivateIsWhitelistedUserFunction()
+    : chrome_details_(this) {
+}
+
+UsersPrivateIsWhitelistedUserFunction::
+    ~UsersPrivateIsWhitelistedUserFunction() {}
+
+ExtensionFunction::ResponseAction UsersPrivateIsWhitelistedUserFunction::Run() {
+  std::unique_ptr<api::users_private::IsWhitelistedUser::Params> parameters =
+      api::users_private::IsWhitelistedUser::Params::Create(*args_);
+  EXTENSION_FUNCTION_VALIDATE(parameters.get());
+
+  // GetUsersList called to clear the stale user name cache
+  GetUsersList(chrome_details_.GetProfile(), browser_context());
+
+  std::string username = gaia::CanonicalizeEmail(parameters->email);
+  if (IsExistingWhitelistedUser(username)) {
+    return RespondNow(OneArgument(std::make_unique<base::Value>(true)));
+  }
+  return RespondNow(OneArgument(std::make_unique<base::Value>(false)));
 }
 
 ////////////////////////////////////////////////////////////////////////////////
@@ -193,8 +229,7 @@
   }
 
   std::string username = gaia::CanonicalizeEmail(parameters->email);
-  if (chromeos::CrosSettings::Get()->FindEmailInList(
-          chromeos::kAccountsPrefUsers, username, NULL)) {
+  if (IsExistingWhitelistedUser(username)) {
     return RespondNow(OneArgument(std::make_unique<base::Value>(false)));
   }
 
diff --git a/chrome/browser/chromeos/extensions/users_private/users_private_api.h b/chrome/browser/chromeos/extensions/users_private/users_private_api.h
index eedf258..3e3d8bf 100644
--- a/chrome/browser/chromeos/extensions/users_private/users_private_api.h
+++ b/chrome/browser/chromeos/extensions/users_private/users_private_api.h
@@ -33,6 +33,25 @@
   DISALLOW_COPY_AND_ASSIGN(UsersPrivateGetWhitelistedUsersFunction);
 };
 
+// Implements the chrome.usersPrivate.isWhitelistedUser method.
+class UsersPrivateIsWhitelistedUserFunction : public ExtensionFunction {
+ public:
+  UsersPrivateIsWhitelistedUserFunction();
+  DECLARE_EXTENSION_FUNCTION("usersPrivate.isWhitelistedUser",
+                             USERSPRIVATE_ISWHITELISTEDUSER)
+
+ protected:
+  ~UsersPrivateIsWhitelistedUserFunction() override;
+
+  // ExtensionFunction overrides.
+  ResponseAction Run() override;
+
+ private:
+  ChromeExtensionFunctionDetails chrome_details_;
+
+  DISALLOW_COPY_AND_ASSIGN(UsersPrivateIsWhitelistedUserFunction);
+};
+
 // Implements the chrome.usersPrivate.addWhitelistedUser method.
 class UsersPrivateAddWhitelistedUserFunction : public ExtensionFunction {
  public:
diff --git a/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc b/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc
index 912a151..98ba499a 100644
--- a/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc
+++ b/chrome/browser/chromeos/extensions/users_private/users_private_apitest.cc
@@ -221,6 +221,10 @@
   EXPECT_TRUE(RunSubtest("addAndRemoveUsers")) << message_;
 }
 
+IN_PROC_BROWSER_TEST_F(UsersPrivateApiTest, IsWhitelistedUser) {
+  EXPECT_TRUE(RunSubtest("isWhitelistedUser")) << message_;
+}
+
 IN_PROC_BROWSER_TEST_F(UsersPrivateApiTest, IsOwner) {
   EXPECT_TRUE(RunSubtest("isOwner")) << message_;
 }
diff --git a/chrome/browser/chromeos/file_manager/file_tasks.cc b/chrome/browser/chromeos/file_manager/file_tasks.cc
index 1874391..fc37c8bd 100644
--- a/chrome/browser/chromeos/file_manager/file_tasks.cc
+++ b/chrome/browser/chromeos/file_manager/file_tasks.cc
@@ -78,6 +78,7 @@
 const char kCrostiniAppTaskType[] = "crostini";
 const char kWebAppTaskType[] = "web";
 const char kImportCrostiniImageHandlerId[] = "import-crostini-image";
+const char kInstallLinuxPackageHandlerId[] = "install-linux-package";
 
 // Converts a TaskType to a string.
 std::string TaskTypeToString(TaskType task_type) {
@@ -473,7 +474,10 @@
 
 bool IsFileHandlerEnabled(Profile* profile,
                           const apps::FileHandlerInfo& file_handler_info) {
-  // Crostini backup files can be disabled by policy.
+  // Crostini deb files and backup files can be disabled by policy.
+  if (file_handler_info.id == kInstallLinuxPackageHandlerId) {
+    return crostini::IsCrostiniRootAccessAllowed(profile);
+  }
   if (file_handler_info.id == kImportCrostiniImageHandlerId) {
     return crostini::IsCrostiniExportImportUIAllowedForProfile(profile);
   }
diff --git a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
index bf75fe6..c61c001 100644
--- a/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
+++ b/chrome/browser/chromeos/file_manager/file_tasks_unittest.cc
@@ -23,6 +23,7 @@
 #include "chrome/browser/chromeos/settings/scoped_cros_settings_test_helper.h"
 #include "chrome/browser/extensions/extension_service.h"
 #include "chrome/browser/extensions/test_extension_system.h"
+#include "chrome/common/chrome_features.h"
 #include "chrome/common/pref_names.h"
 #include "chrome/test/base/testing_profile.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
@@ -313,11 +314,12 @@
   TestingProfile test_profile;
   crostini::CrostiniTestHelper helper(&test_profile);
 
-  apps::FileHandlerInfo crostini_import_handler;
-  crostini_import_handler.id = "import-crostini-image";
   apps::FileHandlerInfo test_handler;
   test_handler.id = "test";
 
+  // Test import-crostini-image.
+  apps::FileHandlerInfo crostini_import_handler;
+  crostini_import_handler.id = "import-crostini-image";
   test_profile.GetPrefs()->SetBoolean(
       crostini::prefs::kUserCrostiniExportImportUIAllowedByPolicy, true);
   EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, crostini_import_handler));
@@ -327,6 +329,40 @@
       crostini::prefs::kUserCrostiniExportImportUIAllowedByPolicy, false);
   EXPECT_FALSE(IsFileHandlerEnabled(&test_profile, crostini_import_handler));
   EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, test_handler));
+
+  // Test install-linux-package - feature on.
+  apps::FileHandlerInfo install_linux_handler;
+  install_linux_handler.id = "install-linux-package";
+  {
+    base::test::ScopedFeatureList scoped_feature_list;
+    scoped_feature_list.InitWithFeatures(
+        {features::kCrostiniAdvancedAccessControls}, {});
+    test_profile.GetPrefs()->SetBoolean(
+        crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy, true);
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, install_linux_handler));
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, test_handler));
+
+    test_profile.GetPrefs()->SetBoolean(
+        crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy, false);
+    EXPECT_FALSE(IsFileHandlerEnabled(&test_profile, install_linux_handler));
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, test_handler));
+  }
+
+  // Test install-linux-package - feature off.
+  {
+    base::test::ScopedFeatureList scoped_feature_list;
+    scoped_feature_list.InitWithFeatures(
+        {}, {features::kCrostiniAdvancedAccessControls});
+    test_profile.GetPrefs()->SetBoolean(
+        crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy, true);
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, install_linux_handler));
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, test_handler));
+
+    test_profile.GetPrefs()->SetBoolean(
+        crostini::prefs::kUserCrostiniRootAccessAllowedByPolicy, false);
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, install_linux_handler));
+    EXPECT_TRUE(IsFileHandlerEnabled(&test_profile, test_handler));
+  }
 }
 
 // Test IsGoodMatchFileHandler which returns whether a file handle info matches
diff --git a/chrome/browser/flag-metadata.json b/chrome/browser/flag-metadata.json
index 475f166..5a1a5eab 100644
--- a/chrome/browser/flag-metadata.json
+++ b/chrome/browser/flag-metadata.json
@@ -2639,6 +2639,11 @@
     "expiry_milestone": 85
   },
   {
+    "name": "omnibox-remove-suggestions-from-clipboard",
+    "owners": [ "gangwu" ],
+    "expiry_milestone": 85
+  },
+  {
     "name": "omnibox-reverse-answers",
     "owners": [ "jdonnelly", "chrome-omnibox-team@google.com" ],
     "expiry_milestone": 76
diff --git a/chrome/browser/flag_descriptions.cc b/chrome/browser/flag_descriptions.cc
index 686c556..51fb902 100644
--- a/chrome/browser/flag_descriptions.cc
+++ b/chrome/browser/flag_descriptions.cc
@@ -1390,6 +1390,11 @@
     "Configures Omnibox on-focus suggestions - suggestions displayed on-focus "
     "before the user has typed any input";
 
+const char kOmniboxRemoveSuggestionsFromClipboardName[] =
+    "Omnibox remove suggestions from clipboard";
+const char kOmniboxRemoveSuggestionsFromClipboardDescription[] =
+    "Allow users to remove suggestions from clipboard.";
+
 const char kOmniboxRichEntitySuggestionsName[] =
     "Omnibox rich entity suggestions";
 const char kOmniboxRichEntitySuggestionsDescription[] =
diff --git a/chrome/browser/flag_descriptions.h b/chrome/browser/flag_descriptions.h
index 4dffcef..7d80a243 100644
--- a/chrome/browser/flag_descriptions.h
+++ b/chrome/browser/flag_descriptions.h
@@ -843,6 +843,9 @@
 extern const char kOmniboxOnFocusSuggestionsName[];
 extern const char kOmniboxOnFocusSuggestionsDescription[];
 
+extern const char kOmniboxRemoveSuggestionsFromClipboardName[];
+extern const char kOmniboxRemoveSuggestionsFromClipboardDescription[];
+
 extern const char kOmniboxRichEntitySuggestionsName[];
 extern const char kOmniboxRichEntitySuggestionsDescription[];
 
diff --git a/chrome/browser/optimization_guide/optimization_guide_top_host_provider_unittest.cc b/chrome/browser/optimization_guide/optimization_guide_top_host_provider_unittest.cc
index ee286b0a..62ae091 100644
--- a/chrome/browser/optimization_guide/optimization_guide_top_host_provider_unittest.cc
+++ b/chrome/browser/optimization_guide/optimization_guide_top_host_provider_unittest.cc
@@ -10,7 +10,7 @@
 #include "chrome/browser/engagement/site_engagement_score.h"
 #include "chrome/browser/engagement/site_engagement_service.h"
 #include "chrome/browser/previews/previews_https_notification_infobar_decider.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
@@ -193,8 +193,8 @@
   // Make sure infobar not shown.
   PreviewsService* previews_service = PreviewsServiceFactory::GetForProfile(
       Profile::FromBrowserContext(web_contents()->GetBrowserContext()));
-  PreviewsLitePageDecider* decider =
-      previews_service->previews_lite_page_decider();
+  PreviewsLitePageRedirectDecider* decider =
+      previews_service->previews_lite_page_redirect_decider();
   // Initialize settings here so Lite Pages Decider checks for the Data Saver
   // bit.
   decider->OnSettingsInitialized();
diff --git a/chrome/browser/page_load_metrics/observers/previews_lite_page_redirect_metrics_observer.h b/chrome/browser/page_load_metrics/observers/previews_lite_page_redirect_metrics_observer.h
index 4611a30..a1ff91cb 100644
--- a/chrome/browser/page_load_metrics/observers/previews_lite_page_redirect_metrics_observer.h
+++ b/chrome/browser/page_load_metrics/observers/previews_lite_page_redirect_metrics_observer.h
@@ -8,7 +8,7 @@
 #include "base/macros.h"
 #include "chrome/browser/page_load_metrics/observers/data_reduction_proxy_metrics_observer_base.h"
 
-// Sends Data Reduction Proxy pingbacks for the Lite Page Redirect preview.
+// Sets UKM metrics for Lite Page Redirect previews.
 class PreviewsLitePageRedirectMetricsObserver
     : public data_reduction_proxy::DataReductionProxyMetricsObserverBase {
  public:
diff --git a/chrome/browser/platform_util_unittest.cc b/chrome/browser/platform_util_unittest.cc
index f939760..2d5f87a 100644
--- a/chrome/browser/platform_util_unittest.cc
+++ b/chrome/browser/platform_util_unittest.cc
@@ -246,8 +246,7 @@
 // ChromeOS doesn't follow symbolic links in sandboxed filesystems. So all the
 // symbolic link tests should return PATH_NOT_FOUND.
 
-// Very flaky due to memory unsafety: crbug.com/1007240
-TEST_F(PlatformUtilPosixTest, DISABLED_OpenFileWithPosixSymlinksChromeOS) {
+TEST_F(PlatformUtilPosixTest, OpenFileWithPosixSymlinksChromeOS) {
   EXPECT_EQ(OPEN_FAILED_PATH_NOT_FOUND,
             CallOpenItem(symlink_to_file_, OPEN_FILE));
   EXPECT_EQ(OPEN_FAILED_PATH_NOT_FOUND,
@@ -265,8 +264,7 @@
             CallOpenItem(symlink_to_nowhere_, OPEN_FOLDER));
 }
 
-// Very flaky due to memory unsafety: crbug.com/1007240
-TEST_F(PlatformUtilTest, DISABLED_OpenFileWithUnhandledFileType) {
+TEST_F(PlatformUtilTest, OpenFileWithUnhandledFileType) {
   base::FilePath unhandled_file =
       directory_.GetPath().AppendASCII("myfile.filetype");
   ASSERT_EQ(3, base::WriteFile(unhandled_file, "cat", 3));
diff --git a/chrome/browser/prefs/browser_prefs.cc b/chrome/browser/prefs/browser_prefs.cc
index 26ba8d5..3c09b76 100644
--- a/chrome/browser/prefs/browser_prefs.cc
+++ b/chrome/browser/prefs/browser_prefs.cc
@@ -50,7 +50,7 @@
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
 #include "chrome/browser/prefs/origin_trial_prefs.h"
 #include "chrome/browser/prefs/session_startup_pref.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/browser/previews/previews_offline_helper.h"
 #include "chrome/browser/profiles/chrome_version_service.h"
 #include "chrome/browser/profiles/profile.h"
@@ -796,7 +796,7 @@
   policy::URLBlacklistManager::RegisterProfilePrefs(registry);
   PrefProxyConfigTrackerImpl::RegisterProfilePrefs(registry);
   PrefsTabHelper::RegisterProfilePrefs(registry, locale);
-  PreviewsLitePageDecider::RegisterProfilePrefs(registry);
+  PreviewsLitePageRedirectDecider::RegisterProfilePrefs(registry);
   PreviewsOfflineHelper::RegisterProfilePrefs(registry);
   Profile::RegisterProfilePrefs(registry);
   ProfileImpl::RegisterProfilePrefs(registry);
diff --git a/chrome/browser/previews/previews_content_util.cc b/chrome/browser/previews/previews_content_util.cc
index 90562de..c058211 100644
--- a/chrome/browser/previews/previews_content_util.cc
+++ b/chrome/browser/previews/previews_content_util.cc
@@ -18,8 +18,8 @@
 #include "chrome/browser/content_settings/cookie_settings_factory.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_offline_helper.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
@@ -78,8 +78,8 @@
   content::WebContents* web_contents = navigation_handle->GetWebContents();
   auto* previews_service = PreviewsServiceFactory::GetForProfile(
       Profile::FromBrowserContext(web_contents->GetBrowserContext()));
-  PreviewsLitePageDecider* decider =
-      previews_service->previews_lite_page_decider();
+  PreviewsLitePageRedirectDecider* decider =
+      previews_service->previews_lite_page_redirect_decider();
 
   std::vector<previews::LitePageRedirectIneligibleReason> ineligible_reasons;
 
@@ -160,8 +160,8 @@
   // This should always be last.
   if (previews::params::IsInLitePageRedirectControl()) {
     previews::PreviewsUserData::ServerLitePageInfo* info =
-        PreviewsLitePageURLLoaderInterceptor::GetOrCreateServerLitePageInfo(
-            navigation_handle, decider);
+        PreviewsLitePageRedirectURLLoaderInterceptor::
+            GetOrCreateServerLitePageInfo(navigation_handle, decider);
     info->status = previews::ServerLitePageStatus::kControl;
     return false;
   }
diff --git a/chrome/browser/previews/previews_lite_page_browsertest.cc b/chrome/browser/previews/previews_lite_page_redirect_browsertest.cc
similarity index 93%
rename from chrome/browser/previews/previews_lite_page_browsertest.cc
rename to chrome/browser/previews/previews_lite_page_redirect_browsertest.cc
index 8f5ed51..80a5ec4 100644
--- a/chrome/browser/previews/previews_lite_page_browsertest.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_browsertest.cc
@@ -35,8 +35,8 @@
 #include "chrome/browser/history/history_service_factory.h"
 #include "chrome/browser/infobars/mock_infobar_service.h"
 #include "chrome/browser/metrics/subprocess_metrics_provider.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
@@ -131,13 +131,13 @@
 
 }  // namespace
 
-class BasePreviewsLitePageServerBrowserTest
+class BasePreviewsLitePageRedirectServerBrowserTest
     : public InProcessBrowserTest,
       public net::test_server::EmbeddedTestServerConnectionListener {
  public:
-  BasePreviewsLitePageServerBrowserTest() {}
+  BasePreviewsLitePageRedirectServerBrowserTest() {}
 
-  ~BasePreviewsLitePageServerBrowserTest() override {}
+  ~BasePreviewsLitePageRedirectServerBrowserTest() override {}
 
   virtual bool UseOptimizationGuideKeyedServiceImplementation() const = 0;
 
@@ -202,7 +202,7 @@
         net::EmbeddedTestServer::TYPE_HTTPS);
     https_server_->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
     https_server_->RegisterRequestHandler(base::BindRepeating(
-        &BasePreviewsLitePageServerBrowserTest::HandleOriginRequest,
+        &BasePreviewsLitePageRedirectServerBrowserTest::HandleOriginRequest,
         base::Unretained(this)));
     ASSERT_TRUE(https_server_->Start());
 
@@ -235,7 +235,7 @@
         net::EmbeddedTestServer::TYPE_HTTP);
     http_server_->ServeFilesFromSourceDirectory(GetChromeTestDataDir());
     http_server_->RegisterRequestHandler(base::BindRepeating(
-        &BasePreviewsLitePageServerBrowserTest::HandleOriginRequest,
+        &BasePreviewsLitePageRedirectServerBrowserTest::HandleOriginRequest,
         base::Unretained(this)));
     ASSERT_TRUE(http_server_->Start());
 
@@ -267,7 +267,7 @@
     previews_server_ = std::make_unique<net::EmbeddedTestServer>(
         net::EmbeddedTestServer::TYPE_HTTPS);
     previews_server_->RegisterRequestHandler(base::BindRepeating(
-        &BasePreviewsLitePageServerBrowserTest::HandleResourceRequest,
+        &BasePreviewsLitePageRedirectServerBrowserTest::HandleResourceRequest,
         base::Unretained(this)));
     previews_server_->SetConnectionListener(this);
     ASSERT_TRUE(previews_server_->Start());
@@ -278,9 +278,10 @@
     // Set up the slow HTTP server with delayed resource handler.
     slow_http_server_ = std::make_unique<net::EmbeddedTestServer>(
         net::EmbeddedTestServer::TYPE_HTTP);
-    slow_http_server_->RegisterRequestHandler(base::BindRepeating(
-        &BasePreviewsLitePageServerBrowserTest::HandleSlowResourceRequest,
-        base::Unretained(this)));
+    slow_http_server_->RegisterRequestHandler(
+        base::BindRepeating(&BasePreviewsLitePageRedirectServerBrowserTest::
+                                HandleSlowResourceRequest,
+                            base::Unretained(this)));
     ASSERT_TRUE(slow_http_server_->Start());
 
     slow_http_url_ = slow_http_server_->GetURL(kOriginHost, "/");
@@ -334,8 +335,8 @@
     // state on the decider so it isn't required.
     PreviewsService* previews_service =
         PreviewsServiceFactory::GetForProfile(browser()->profile());
-    PreviewsLitePageDecider* decider =
-        previews_service->previews_lite_page_decider();
+    PreviewsLitePageRedirectDecider* decider =
+        previews_service->previews_lite_page_redirect_decider();
     decider->SetUserHasSeenUINotification();
 
     decider->BlacklistBypassedHost(kBlacklistedHost,
@@ -355,8 +356,8 @@
 
     PreviewsService* previews_service =
         PreviewsServiceFactory::GetForProfile(browser()->profile());
-    PreviewsLitePageDecider* decider =
-        previews_service->previews_lite_page_decider();
+    PreviewsLitePageRedirectDecider* decider =
+        previews_service->previews_lite_page_redirect_decider();
 
     // Wait for a completed probe to the litepages server if needed.
     while (drp_settings->IsDataReductionProxyEnabled()) {
@@ -574,8 +575,8 @@
     PreviewsService* previews_service =
         PreviewsServiceFactory::GetForProfile(browser()->profile());
     ASSERT_TRUE(previews_service);
-    PreviewsLitePageDecider* decider =
-        previews_service->previews_lite_page_decider();
+    PreviewsLitePageRedirectDecider* decider =
+        previews_service->previews_lite_page_redirect_decider();
     ASSERT_TRUE(decider);
     decider->ClearStateForTesting();
   }
@@ -923,8 +924,8 @@
 
 // Param is true if testing using the OptimizationGuideKeyedService
 // implementation.
-class PreviewsLitePageServerBrowserTest
-    : public BasePreviewsLitePageServerBrowserTest,
+class PreviewsLitePageRedirectServerBrowserTest
+    : public BasePreviewsLitePageRedirectServerBrowserTest,
       public testing::WithParamInterface<bool> {
  public:
   bool UseOptimizationGuideKeyedServiceImplementation() const override {
@@ -936,7 +937,7 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     testing::Bool());
 
 // Previews InfoBar (which these tests trigger) does not work on Mac.
@@ -949,7 +950,7 @@
 #endif
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsTriggering)) {
   // TODO(crbug.com/874150): Use ExpectUniqueSample in these tests.
   // The histograms in these tests can only be checked by the expected bucket,
@@ -1136,7 +1137,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsOriginProbe_Success)) {
   set_origin_probe_success(true);
 
@@ -1146,7 +1147,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsOriginProbe_Fail)) {
   set_origin_probe_success(false);
 
@@ -1156,7 +1157,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsReloadSoftOptOut)) {
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
   VerifyPreviewLoaded();
@@ -1166,7 +1167,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsNoChromeProxyHeader)) {
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
   VerifyPreviewLoaded();
@@ -1175,8 +1176,8 @@
   net::HttpRequestHeaders empty;
   PreviewsService* previews_service =
       PreviewsServiceFactory::GetForProfile(browser()->profile());
-  PreviewsLitePageDecider* decider =
-      previews_service->previews_lite_page_decider();
+  PreviewsLitePageRedirectDecider* decider =
+      previews_service->previews_lite_page_redirect_decider();
   decider->OnProxyRequestHeadersChanged(empty);
 
   base::HistogramTester histogram_tester;
@@ -1191,7 +1192,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(CoinFlipHoldbackTriggering)) {
   base::test::ScopedFeatureList scoped_feature_list;
   scoped_feature_list.InitAndEnableFeatureWithParameters(
@@ -1202,7 +1203,7 @@
   VerifyPreviewNotLoaded();
 }
 
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
+IN_PROC_BROWSER_TEST_P(PreviewsLitePageRedirectServerBrowserTest,
                        DISABLE_ON_WIN_MAC_CHROMESOS(PredictorShownAndHidden)) {
   base::HistogramTester histogram_tester;
   GetWebContents()->WasHidden();
@@ -1221,7 +1222,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsLoadOriginal)) {
   base::HistogramTester histogram_tester;
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
@@ -1241,7 +1242,7 @@
   VerifyPreviewNotLoaded();
 }
 
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
+IN_PROC_BROWSER_TEST_P(PreviewsLitePageRedirectServerBrowserTest,
                        DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsRedirect)) {
   {
     // Verify the preview is triggered when an HTTP page redirects to HTTPS.
@@ -1287,7 +1288,7 @@
   }
 }
 
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
+IN_PROC_BROWSER_TEST_P(PreviewsLitePageRedirectServerBrowserTest,
                        DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsResponse)) {
   {
     // Verify the preview is not triggered when the server responds with bypass
@@ -1352,13 +1353,13 @@
   }
 }
 
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerBrowserTest,
+IN_PROC_BROWSER_TEST_P(PreviewsLitePageRedirectServerBrowserTest,
                        DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsLoadshed)) {
   PreviewsService* previews_service =
       PreviewsServiceFactory::GetForProfile(browser()->profile());
   ASSERT_TRUE(previews_service);
-  PreviewsLitePageDecider* decider =
-      previews_service->previews_lite_page_decider();
+  PreviewsLitePageRedirectDecider* decider =
+      previews_service->previews_lite_page_redirect_decider();
   ASSERT_TRUE(decider);
 
   std::unique_ptr<base::SimpleTestTickClock> clock =
@@ -1398,7 +1399,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePageURLNotReportedToHistory)) {
   base::CancelableTaskTracker tracker_;
   history::HistoryService* history_service =
@@ -1456,7 +1457,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsReportSavings)) {
   PrefService* prefs = browser()->profile()->GetPrefs();
   prefs->SetBoolean(data_reduction_proxy::prefs::kDataUsageReportingEnabled,
@@ -1479,7 +1480,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsClientRedirect)) {
   // Navigate to a non-preview first.
   ui_test_utils::NavigateToURL(browser(), https_media_url());
@@ -1494,7 +1495,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsNavigation)) {
   {
     SCOPED_TRACE("First preview load");
@@ -1533,7 +1534,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBrowserTest,
+    PreviewsLitePageRedirectServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePageSendsInterventionReport)) {
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
   VerifyPreviewLoaded();
@@ -1561,12 +1562,12 @@
   EXPECT_EQ(expected, ParsedInterventionReport());
 }
 
-class PreviewsLitePageServerTimeoutBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectServerTimeoutBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageServerTimeoutBrowserTest() = default;
+  PreviewsLitePageRedirectServerTimeoutBrowserTest() = default;
 
-  ~PreviewsLitePageServerTimeoutBrowserTest() override = default;
+  ~PreviewsLitePageRedirectServerTimeoutBrowserTest() override = default;
 
   void SetUp() override {
     SetUpLitePageTest(true /* use_timeout */, false /* is_control */);
@@ -1579,10 +1580,10 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerTimeoutBrowserTest,
+    PreviewsLitePageRedirectServerTimeoutBrowserTest,
     testing::Bool());
 
-IN_PROC_BROWSER_TEST_P(PreviewsLitePageServerTimeoutBrowserTest,
+IN_PROC_BROWSER_TEST_P(PreviewsLitePageRedirectServerTimeoutBrowserTest,
                        DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsTimeout)) {
   {
     // Ensure that a hung previews navigation doesn't wind up at the previews
@@ -1608,12 +1609,12 @@
   }
 }
 
-class PreviewsLitePageServerBadServerBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectServerBadServerBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageServerBadServerBrowserTest() = default;
+  PreviewsLitePageRedirectServerBadServerBrowserTest() = default;
 
-  ~PreviewsLitePageServerBadServerBrowserTest() override = default;
+  ~PreviewsLitePageRedirectServerBadServerBrowserTest() override = default;
 
   // Override the previews_server URL so that a bad value will be configured.
   GURL previews_server_url() const override {
@@ -1625,11 +1626,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerBadServerBrowserTest,
+    PreviewsLitePageRedirectServerBadServerBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerBadServerBrowserTest,
+    PreviewsLitePageRedirectServerBadServerBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsBadServer)) {
   // TODO(crbug.com/874150): Use ExpectUniqueSample in this tests.
   // The histograms in this tests can only be checked by the expected bucket,
@@ -1649,15 +1650,15 @@
   }
 }
 
-class PreviewsLitePageServerDataSaverBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectServerDataSaverBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageServerDataSaverBrowserTest() = default;
+  PreviewsLitePageRedirectServerDataSaverBrowserTest() = default;
 
-  ~PreviewsLitePageServerDataSaverBrowserTest() override = default;
+  ~PreviewsLitePageRedirectServerDataSaverBrowserTest() override = default;
 
-  // Overrides the cmd line in PreviewsLitePageServerBrowserTest and leave out
-  // the flag to enable DataSaver.
+  // Overrides the cmd line in PreviewsLitePageRedirectServerBrowserTest and
+  // leave out the flag to enable DataSaver.
   void SetUpCommandLine(base::CommandLine* cmd) override {
     // Due to race conditions, it's possible that blacklist data is not loaded
     // at the time of first navigation. That may prevent Preview from
@@ -1673,11 +1674,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerDataSaverBrowserTest,
+    PreviewsLitePageRedirectServerDataSaverBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerDataSaverBrowserTest,
+    PreviewsLitePageRedirectServerDataSaverBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsDSTriggering)) {
   // Verify the preview is not triggered on HTTPS pageloads without DataSaver.
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
@@ -1685,15 +1686,16 @@
   ClearDeciderState();
 }
 
-class PreviewsLitePageServerNoDataSaverHeaderBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectServerNoDataSaverHeaderBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageServerNoDataSaverHeaderBrowserTest() = default;
+  PreviewsLitePageRedirectServerNoDataSaverHeaderBrowserTest() = default;
 
-  ~PreviewsLitePageServerNoDataSaverHeaderBrowserTest() override = default;
+  ~PreviewsLitePageRedirectServerNoDataSaverHeaderBrowserTest() override =
+      default;
 
-  // Overrides the command line in PreviewsLitePageServerBrowserTest to leave
-  // out the flag that manually adds the chrome-proxy header.
+  // Overrides the command line in PreviewsLitePageRedirectServerBrowserTest to
+  // leave out the flag that manually adds the chrome-proxy header.
   void SetUpCommandLine(base::CommandLine* cmd) override {
     // Due to race conditions, it's possible that blacklist data is not loaded
     // at the time of first navigation. That may prevent Preview from
@@ -1710,11 +1712,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerNoDataSaverHeaderBrowserTest,
+    PreviewsLitePageRedirectServerNoDataSaverHeaderBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerNoDataSaverHeaderBrowserTest,
+    PreviewsLitePageRedirectServerNoDataSaverHeaderBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsDSNoHeaderTriggering)) {
   // Verify the preview is not triggered on HTTPS pageloads without data saver.
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
@@ -1722,12 +1724,13 @@
   ClearDeciderState();
 }
 
-class PreviewsLitePageNotificationDSEnabledBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectNotificationDSEnabledBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageNotificationDSEnabledBrowserTest() = default;
+  PreviewsLitePageRedirectNotificationDSEnabledBrowserTest() = default;
 
-  ~PreviewsLitePageNotificationDSEnabledBrowserTest() override = default;
+  ~PreviewsLitePageRedirectNotificationDSEnabledBrowserTest() override =
+      default;
 
   void SetUp() override {
     SetUpLitePageTest(false /* use_timeout */, false /* is_control */);
@@ -1751,11 +1754,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageNotificationDSEnabledBrowserTest,
+    PreviewsLitePageRedirectNotificationDSEnabledBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageNotificationDSEnabledBrowserTest,
+    PreviewsLitePageRedirectNotificationDSEnabledBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsInfoBarDataSaverUser)) {
   // Ensure the preview is not shown the first time before the infobar is shown
   // for users who have DRP enabled.
@@ -1774,12 +1777,12 @@
       previews::LitePageRedirectIneligibleReason::kInfoBarNotSeen, 1);
 }
 
-class PreviewsLitePageDSDisabledBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectDSDisabledBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageDSDisabledBrowserTest() = default;
+  PreviewsLitePageRedirectDSDisabledBrowserTest() = default;
 
-  ~PreviewsLitePageDSDisabledBrowserTest() override = default;
+  ~PreviewsLitePageRedirectDSDisabledBrowserTest() override = default;
 
   void SetUp() override {
     SetUpLitePageTest(false /* use_timeout */, false /* is_control */);
@@ -1795,8 +1798,8 @@
             net::EFFECTIVE_CONNECTION_TYPE_2G);
   }
 
-  // Overrides the cmd line in PreviewsLitePageServerBrowserTest and leave out
-  // the flag to enable DataSaver.
+  // Overrides the cmd line in PreviewsLitePageRedirectServerBrowserTest and
+  // leave out the flag to enable DataSaver.
   void SetUpCommandLine(base::CommandLine* cmd) override {
     // Due to race conditions, it's possible that blacklist data is not loaded
     // at the time of first navigation. That may prevent Preview from
@@ -1812,11 +1815,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageDSDisabledBrowserTest,
+    PreviewsLitePageRedirectDSDisabledBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageDSDisabledBrowserTest,
+    PreviewsLitePageRedirectDSDisabledBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsInfoBarNonDataSaverUser)) {
   base::HistogramTester histogram_tester;
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
@@ -1827,12 +1830,12 @@
       "Previews.ServerLitePage.PreresolvedToPreviewServer", 0);
 }
 
-class PreviewsLitePageControlBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectControlBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageControlBrowserTest() = default;
+  PreviewsLitePageRedirectControlBrowserTest() = default;
 
-  ~PreviewsLitePageControlBrowserTest() override = default;
+  ~PreviewsLitePageRedirectControlBrowserTest() override = default;
 
   void SetUp() override {
     SetUpLitePageTest(false /* use_timeout */, true /* is_control */);
@@ -1845,11 +1848,11 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageControlBrowserTest,
+    PreviewsLitePageRedirectControlBrowserTest,
     testing::Bool());
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageControlBrowserTest,
+    PreviewsLitePageRedirectControlBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsControlGroup)) {
   base::HistogramTester histogram_tester;
   ui_test_utils::NavigateToURL(browser(), HttpsLitePageURL(kSuccess));
@@ -1863,12 +1866,12 @@
   kTopFrameAndFrameOrigins,
 };
 
-class PreviewsLitePageServerNetworkIsolationBrowserTest
-    : public BasePreviewsLitePageServerBrowserTest,
+class PreviewsLitePageRedirectServerNetworkIsolationBrowserTest
+    : public BasePreviewsLitePageRedirectServerBrowserTest,
       public testing::WithParamInterface<NetworkIsolationKeyMode> {
  public:
   void SetUp() override {
-    BasePreviewsLitePageServerBrowserTest::SetUp();
+    BasePreviewsLitePageRedirectServerBrowserTest::SetUp();
 
     switch (GetParam()) {
       case NetworkIsolationKeyMode::kNone:
@@ -1906,7 +1909,7 @@
 };
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageServerNetworkIsolationBrowserTest,
+    PreviewsLitePageRedirectServerNetworkIsolationBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(PreconnectToPreviewsServer)) {
   base::HistogramTester histogram_tester;
 
@@ -1936,17 +1939,17 @@
 
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageServerNetworkIsolationBrowserTest,
+    PreviewsLitePageRedirectServerNetworkIsolationBrowserTest,
     ::testing::Values(NetworkIsolationKeyMode::kNone,
                       NetworkIsolationKeyMode::kTopFrameOrigin,
                       NetworkIsolationKeyMode::kTopFrameAndFrameOrigins));
 
-class PreviewsLitePageAndPageHintsBrowserTest
-    : public PreviewsLitePageServerBrowserTest {
+class PreviewsLitePageRedirectAndPageHintsBrowserTest
+    : public PreviewsLitePageRedirectServerBrowserTest {
  public:
-  PreviewsLitePageAndPageHintsBrowserTest() = default;
+  PreviewsLitePageRedirectAndPageHintsBrowserTest() = default;
 
-  ~PreviewsLitePageAndPageHintsBrowserTest() override = default;
+  ~PreviewsLitePageRedirectAndPageHintsBrowserTest() override = default;
 
   void SetResourceLoadingHints(const std::vector<std::string>& hints_sites) {
     std::vector<std::string> resource_patterns;
@@ -1961,7 +1964,7 @@
   }
 
   void SetUpCommandLine(base::CommandLine* cmd) override {
-    PreviewsLitePageServerBrowserTest::SetUpCommandLine(cmd);
+    PreviewsLitePageRedirectServerBrowserTest::SetUpCommandLine(cmd);
     cmd->AppendSwitch("optimization-guide-disable-installer");
     cmd->AppendSwitch("purge_hint_cache_store");
   }
@@ -1980,12 +1983,12 @@
 // implementation.
 INSTANTIATE_TEST_SUITE_P(
     /* no prefix */,
-    PreviewsLitePageAndPageHintsBrowserTest,
+    PreviewsLitePageRedirectAndPageHintsBrowserTest,
     testing::Bool());
 
 // Regression test for crbug.com/954554.
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageAndPageHintsBrowserTest,
+    PreviewsLitePageRedirectAndPageHintsBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(PreviewsServerIsInBloomFilter)) {
   optimization_guide::BloomFilter blacklist_bloom_filter(7, 511);
   blacklist_bloom_filter.Add(previews_server_url().host());
@@ -2020,7 +2023,7 @@
 }
 
 IN_PROC_BROWSER_TEST_P(
-    PreviewsLitePageAndPageHintsBrowserTest,
+    PreviewsLitePageRedirectAndPageHintsBrowserTest,
     DISABLE_ON_WIN_MAC_CHROMESOS(LitePagePreviewsDoesNotOverridePageHints)) {
   base::HistogramTester histogram_tester;
 
@@ -2047,19 +2050,19 @@
 }
 
 class CoinFlipHoldbackExperimentBrowserTest
-    : public PreviewsLitePageAndPageHintsBrowserTest {
+    : public PreviewsLitePageRedirectAndPageHintsBrowserTest {
  public:
   CoinFlipHoldbackExperimentBrowserTest() = default;
 
   ~CoinFlipHoldbackExperimentBrowserTest() override = default;
 
   void SetUp() override {
-    PreviewsLitePageAndPageHintsBrowserTest::SetUp();
+    PreviewsLitePageRedirectAndPageHintsBrowserTest::SetUp();
     ukm_feature_list_.InitAndEnableFeature(ukm::kUkmFeature);
   }
 
   void SetUpCommandLine(base::CommandLine* cmd) override {
-    PreviewsLitePageAndPageHintsBrowserTest::SetUpCommandLine(cmd);
+    PreviewsLitePageRedirectAndPageHintsBrowserTest::SetUpCommandLine(cmd);
     cmd->AppendSwitch("litepage_redirect_overrides_page_hints");
   }
 
diff --git a/chrome/browser/previews/previews_lite_page_decider.cc b/chrome/browser/previews/previews_lite_page_redirect_decider.cc
similarity index 86%
rename from chrome/browser/previews/previews_lite_page_decider.cc
rename to chrome/browser/previews/previews_lite_page_redirect_decider.cc
index fa883e0..657e869 100644
--- a/chrome/browser/previews/previews_lite_page_decider.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_decider.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 
 #include <vector>
 
@@ -136,7 +136,7 @@
 
 WEB_CONTENTS_USER_DATA_KEY_IMPL(UserNotificationWebContentsObserver)
 
-PreviewsLitePageDecider::PreviewsLitePageDecider(
+PreviewsLitePageRedirectDecider::PreviewsLitePageRedirectDecider(
     content::BrowserContext* browser_context)
     : clock_(base::DefaultTickClock::GetInstance()),
       page_id_(base::RandUint64()),
@@ -224,32 +224,34 @@
       true /* send_only_in_foreground */);
 }
 
-PreviewsLitePageDecider::~PreviewsLitePageDecider() = default;
+PreviewsLitePageRedirectDecider::~PreviewsLitePageRedirectDecider() = default;
 
 // static
-void PreviewsLitePageDecider::RegisterProfilePrefs(
+void PreviewsLitePageRedirectDecider::RegisterProfilePrefs(
     user_prefs::PrefRegistrySyncable* registry) {
   registry->RegisterBooleanPref(kUserNeedsNotification, true);
   registry->RegisterDictionaryPref(kHostBlacklist);
 }
 
 // static
-uint64_t PreviewsLitePageDecider::GeneratePageIdForWebContents(
+uint64_t PreviewsLitePageRedirectDecider::GeneratePageIdForWebContents(
     content::WebContents* web_contents) {
-  return PreviewsLitePageDecider::GeneratePageIdForProfile(
+  return PreviewsLitePageRedirectDecider::GeneratePageIdForProfile(
       Profile::FromBrowserContext(web_contents->GetBrowserContext()));
 }
 
 // static
-uint64_t PreviewsLitePageDecider::GeneratePageIdForProfile(Profile* profile) {
+uint64_t PreviewsLitePageRedirectDecider::GeneratePageIdForProfile(
+    Profile* profile) {
   PreviewsService* previews_service =
       PreviewsServiceFactory::GetForProfile(profile);
   return previews_service
-             ? previews_service->previews_lite_page_decider()->GeneratePageID()
+             ? previews_service->previews_lite_page_redirect_decider()
+                   ->GeneratePageID()
              : 0;
 }
 
-void PreviewsLitePageDecider::OnProxyRequestHeadersChanged(
+void PreviewsLitePageRedirectDecider::OnProxyRequestHeadersChanged(
     const net::HttpRequestHeaders& headers) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -266,7 +268,7 @@
   page_id_ = base::RandUint64();
 }
 
-void PreviewsLitePageDecider::OnSettingsInitialized() {
+void PreviewsLitePageRedirectDecider::OnSettingsInitialized() {
   // The notification only needs to be shown if the user has never seen it
   // before, and is an existing Data Saver user.
   if (!pref_service_->GetBoolean(kUserNeedsNotification)) {
@@ -279,41 +281,42 @@
   }
 }
 
-void PreviewsLitePageDecider::Shutdown() {
+void PreviewsLitePageRedirectDecider::Shutdown() {
   if (drp_settings_)
     drp_settings_->RemoveDataReductionProxySettingsObserver(this);
 }
 
-void PreviewsLitePageDecider::SetClockForTesting(const base::TickClock* clock) {
+void PreviewsLitePageRedirectDecider::SetClockForTesting(
+    const base::TickClock* clock) {
   clock_ = clock;
 }
 
-void PreviewsLitePageDecider::SetDRPSettingsForTesting(
+void PreviewsLitePageRedirectDecider::SetDRPSettingsForTesting(
     data_reduction_proxy::DataReductionProxySettings* drp_settings) {
   drp_settings_ = drp_settings;
   drp_settings_->AddDataReductionProxySettingsObserver(this);
 }
 
-void PreviewsLitePageDecider::ClearBlacklist() {
+void PreviewsLitePageRedirectDecider::ClearBlacklist() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   host_bypass_blacklist_->Clear();
   if (pref_service_)
     pref_service_->Set(kHostBlacklist, *host_bypass_blacklist_);
 }
 
-void PreviewsLitePageDecider::ClearStateForTesting() {
+void PreviewsLitePageRedirectDecider::ClearStateForTesting() {
   single_bypass_.clear();
   host_bypass_blacklist_->Clear();
 }
 
-void PreviewsLitePageDecider::SetUserHasSeenUINotification() {
+void PreviewsLitePageRedirectDecider::SetUserHasSeenUINotification() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(pref_service_);
   need_to_show_notification_ = false;
   pref_service_->SetBoolean(kUserNeedsNotification, false);
 }
 
-void PreviewsLitePageDecider::SetServerUnavailableFor(
+void PreviewsLitePageRedirectDecider::SetServerUnavailableFor(
     base::TimeDelta retry_after) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   base::TimeTicks retry_at = clock_->NowTicks() + retry_after;
@@ -321,7 +324,7 @@
     retry_at_ = retry_at;
 }
 
-bool PreviewsLitePageDecider::IsServerUnavailable() {
+bool PreviewsLitePageRedirectDecider::IsServerUnavailable() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (!retry_at_.has_value())
     return false;
@@ -331,7 +334,7 @@
   return server_loadshedding;
 }
 
-void PreviewsLitePageDecider::AddSingleBypass(std::string url) {
+void PreviewsLitePageRedirectDecider::AddSingleBypass(std::string url) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Garbage collect any old entries while looking for the one for |url|.
   auto entry = single_bypass_.end();
@@ -356,7 +359,7 @@
   entry->second = ttl;
 }
 
-bool PreviewsLitePageDecider::CheckSingleBypass(std::string url) {
+bool PreviewsLitePageRedirectDecider::CheckSingleBypass(std::string url) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   auto entry = single_bypass_.find(url);
   if (entry == single_bypass_.end())
@@ -364,14 +367,15 @@
   return entry->second >= clock_->NowTicks();
 }
 
-uint64_t PreviewsLitePageDecider::GeneratePageID() {
+uint64_t PreviewsLitePageRedirectDecider::GeneratePageID() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return ++page_id_;
 }
 
-void PreviewsLitePageDecider::ReportDataSavings(int64_t network_bytes,
-                                                int64_t original_bytes,
-                                                const std::string& host) {
+void PreviewsLitePageRedirectDecider::ReportDataSavings(
+    int64_t network_bytes,
+    int64_t original_bytes,
+    const std::string& host) {
   if (!drp_settings_ || !drp_settings_->data_reduction_proxy_service())
     return;
 
@@ -391,7 +395,7 @@
       0);
 }
 
-bool PreviewsLitePageDecider::NeedsToNotifyUser() {
+bool PreviewsLitePageRedirectDecider::NeedsToNotifyUser() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   if (base::CommandLine::ForCurrentProcess()->HasSwitch(
           previews::switches::kDoNotRequireLitePageRedirectInfoBar)) {
@@ -400,7 +404,8 @@
   return need_to_show_notification_;
 }
 
-void PreviewsLitePageDecider::NotifyUser(content::WebContents* web_contents) {
+void PreviewsLitePageRedirectDecider::NotifyUser(
+    content::WebContents* web_contents) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(need_to_show_notification_);
   DCHECK(!UserNotificationWebContentsObserver::FromWebContents(web_contents));
@@ -410,13 +415,14 @@
       UserNotificationWebContentsObserver::FromWebContents(web_contents);
 
   // base::Unretained is safe here because |this| outlives |web_contents|.
-  observer->SetUIShownCallback(
-      base::BindOnce(&PreviewsLitePageDecider::SetUserHasSeenUINotification,
-                     base::Unretained(this)));
+  observer->SetUIShownCallback(base::BindOnce(
+      &PreviewsLitePageRedirectDecider::SetUserHasSeenUINotification,
+      base::Unretained(this)));
 }
 
-void PreviewsLitePageDecider::BlacklistBypassedHost(const std::string& host,
-                                                    base::TimeDelta duration) {
+void PreviewsLitePageRedirectDecider::BlacklistBypassedHost(
+    const std::string& host,
+    base::TimeDelta duration) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // If there is an existing entry, intentionally update it.
   host_bypass_blacklist_->SetKey(
@@ -427,7 +433,7 @@
     pref_service_->Set(kHostBlacklist, *host_bypass_blacklist_);
 }
 
-bool PreviewsLitePageDecider::HostBlacklistedFromBypass(
+bool PreviewsLitePageRedirectDecider::HostBlacklistedFromBypass(
     const std::string& host) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   base::Value* value = host_bypass_blacklist_->FindKey(host);
@@ -439,7 +445,7 @@
   return expiry > base::Time::Now();
 }
 
-bool PreviewsLitePageDecider::ShouldSendNextProbe() {
+bool PreviewsLitePageRedirectDecider::ShouldSendNextProbe() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return data_reduction_proxy::DataReductionProxySettings::
              IsDataSaverEnabledByUser(pref_service_) &&
@@ -449,7 +455,7 @@
          previews::params::LitePageRedirectOnlyTriggerOnSuccessfulProbe();
 }
 
-bool PreviewsLitePageDecider::IsResponseSuccess(
+bool PreviewsLitePageRedirectDecider::IsResponseSuccess(
     net::Error net_error,
     const network::mojom::URLResponseHead* head,
     std::unique_ptr<std::string> body) {
@@ -458,12 +464,12 @@
   return net_error == net::OK && head && head->headers;
 }
 
-bool PreviewsLitePageDecider::IsServerProbeResultAvailable() {
+bool PreviewsLitePageRedirectDecider::IsServerProbeResultAvailable() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return litepages_service_prober_->LastProbeWasSuccessful().has_value();
 }
 
-bool PreviewsLitePageDecider::IsServerReachableByProbe() {
+bool PreviewsLitePageRedirectDecider::IsServerReachableByProbe() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   base::Optional<bool> probe =
       litepages_service_prober_->LastProbeWasSuccessful();
diff --git a/chrome/browser/previews/previews_lite_page_decider.h b/chrome/browser/previews/previews_lite_page_redirect_decider.h
similarity index 92%
rename from chrome/browser/previews/previews_lite_page_decider.h
rename to chrome/browser/previews/previews_lite_page_redirect_decider.h
index 0acb820..f72ac5225 100644
--- a/chrome/browser/previews/previews_lite_page_decider.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_decider.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_DECIDER_H_
-#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_DECIDER_H_
+#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_DECIDER_H_
+#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_DECIDER_H_
 
 #include <memory>
 #include <string>
@@ -35,13 +35,14 @@
 }
 
 // This class manages the triggering logic for Lite Page Redirect previews.
-class PreviewsLitePageDecider
+class PreviewsLitePageRedirectDecider
     : public AvailabilityProber::Delegate,
       public PreviewsHTTPSNotificationInfoBarDecider,
       public data_reduction_proxy::DataReductionProxySettingsObserver {
  public:
-  explicit PreviewsLitePageDecider(content::BrowserContext* browser_context);
-  virtual ~PreviewsLitePageDecider();
+  explicit PreviewsLitePageRedirectDecider(
+      content::BrowserContext* browser_context);
+  virtual ~PreviewsLitePageRedirectDecider();
 
   // Registers the prefs used in this class.
   static void RegisterProfilePrefs(user_prefs::PrefRegistrySyncable* registry);
@@ -170,7 +171,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageDecider);
+  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageRedirectDecider);
 };
 
-#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_DECIDER_H_
+#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_DECIDER_H_
diff --git a/chrome/browser/previews/previews_lite_page_decider_unittest.cc b/chrome/browser/previews/previews_lite_page_redirect_decider_unittest.cc
similarity index 68%
rename from chrome/browser/previews/previews_lite_page_decider_unittest.cc
rename to chrome/browser/previews/previews_lite_page_redirect_decider_unittest.cc
index a2c3199..95d8341 100644
--- a/chrome/browser/previews/previews_lite_page_decider_unittest.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_decider_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 
 #include <memory>
 
@@ -29,24 +29,24 @@
 const char kTestUrl[] = "http://www.test.com/";
 }
 
-class PreviewsLitePageDeciderTest : public testing::Test {
+class PreviewsLitePageRedirectDeciderTest : public testing::Test {
  protected:
-  PreviewsLitePageDeciderTest()
+  PreviewsLitePageRedirectDeciderTest()
       : task_environment_(base::test::TaskEnvironment::MainThreadType::UI) {}
 
  private:
   base::test::TaskEnvironment task_environment_;
 };
 
-TEST_F(PreviewsLitePageDeciderTest, TestHostBypassBlacklist) {
+TEST_F(PreviewsLitePageRedirectDeciderTest, TestHostBypassBlacklist) {
   const int kBlacklistDurationDays = 30;
   const std::string kHost = "google.com";
   const std::string kOtherHost = "chromium.org";
   const base::TimeDelta kYesterday = base::TimeDelta::FromDays(-1);
   const base::TimeDelta kOneDay = base::TimeDelta::FromDays(1);
 
-  std::unique_ptr<PreviewsLitePageDecider> decider =
-      std::make_unique<PreviewsLitePageDecider>(nullptr);
+  std::unique_ptr<PreviewsLitePageRedirectDecider> decider =
+      std::make_unique<PreviewsLitePageRedirectDecider>(nullptr);
 
   // Simple happy case.
   decider->BlacklistBypassedHost(kHost, kOneDay);
@@ -80,11 +80,11 @@
   decider->ClearStateForTesting();
 }
 
-TEST_F(PreviewsLitePageDeciderTest, TestClearHostBypassBlacklist) {
+TEST_F(PreviewsLitePageRedirectDeciderTest, TestClearHostBypassBlacklist) {
   const std::string kHost = "1.chromium.org";
 
-  std::unique_ptr<PreviewsLitePageDecider> decider =
-      std::make_unique<PreviewsLitePageDecider>(nullptr);
+  std::unique_ptr<PreviewsLitePageRedirectDecider> decider =
+      std::make_unique<PreviewsLitePageRedirectDecider>(nullptr);
 
   decider->BlacklistBypassedHost(kHost, base::TimeDelta::FromMinutes(1));
   EXPECT_TRUE(decider->HostBlacklistedFromBypass(kHost));
@@ -93,7 +93,7 @@
   EXPECT_FALSE(decider->HostBlacklistedFromBypass(kHost));
 }
 
-TEST_F(PreviewsLitePageDeciderTest, TestServerUnavailable) {
+TEST_F(PreviewsLitePageRedirectDeciderTest, TestServerUnavailable) {
   struct TestCase {
     base::TimeDelta set_available_after;
     base::TimeDelta check_available_after;
@@ -101,18 +101,20 @@
   };
   const TestCase kTestCases[]{
       {
-          base::TimeDelta::FromMinutes(1), base::TimeDelta::FromMinutes(2),
+          base::TimeDelta::FromMinutes(1),
+          base::TimeDelta::FromMinutes(2),
           false,
       },
       {
-          base::TimeDelta::FromMinutes(2), base::TimeDelta::FromMinutes(1),
+          base::TimeDelta::FromMinutes(2),
+          base::TimeDelta::FromMinutes(1),
           true,
       },
   };
 
   for (const TestCase& test_case : kTestCases) {
-    std::unique_ptr<PreviewsLitePageDecider> decider =
-        std::make_unique<PreviewsLitePageDecider>(nullptr);
+    std::unique_ptr<PreviewsLitePageRedirectDecider> decider =
+        std::make_unique<PreviewsLitePageRedirectDecider>(nullptr);
     std::unique_ptr<base::SimpleTestTickClock> clock =
         std::make_unique<base::SimpleTestTickClock>();
     decider->SetClockForTesting(clock.get());
@@ -125,7 +127,7 @@
   }
 }
 
-TEST_F(PreviewsLitePageDeciderTest, TestSingleBypass) {
+TEST_F(PreviewsLitePageRedirectDeciderTest, TestSingleBypass) {
   const std::string kUrl = "http://test.com";
   struct TestCase {
     std::string add_url;
@@ -135,28 +137,46 @@
   };
   const TestCase kTestCases[]{
       {
-          kUrl, base::TimeDelta::FromMinutes(1), kUrl, true,
+          kUrl,
+          base::TimeDelta::FromMinutes(1),
+          kUrl,
+          true,
       },
       {
-          kUrl, base::TimeDelta::FromMinutes(6), kUrl, false,
+          kUrl,
+          base::TimeDelta::FromMinutes(6),
+          kUrl,
+          false,
       },
       {
-          "bad", base::TimeDelta::FromMinutes(1), kUrl, false,
+          "bad",
+          base::TimeDelta::FromMinutes(1),
+          kUrl,
+          false,
       },
       {
-          "bad", base::TimeDelta::FromMinutes(6), kUrl, false,
+          "bad",
+          base::TimeDelta::FromMinutes(6),
+          kUrl,
+          false,
       },
       {
-          kUrl, base::TimeDelta::FromMinutes(1), "bad", false,
+          kUrl,
+          base::TimeDelta::FromMinutes(1),
+          "bad",
+          false,
       },
       {
-          kUrl, base::TimeDelta::FromMinutes(6), "bad", false,
+          kUrl,
+          base::TimeDelta::FromMinutes(6),
+          "bad",
+          false,
       },
   };
 
   for (const TestCase& test_case : kTestCases) {
-    std::unique_ptr<PreviewsLitePageDecider> decider =
-        std::make_unique<PreviewsLitePageDecider>(nullptr);
+    std::unique_ptr<PreviewsLitePageRedirectDecider> decider =
+        std::make_unique<PreviewsLitePageRedirectDecider>(nullptr);
     std::unique_ptr<base::SimpleTestTickClock> clock =
         std::make_unique<base::SimpleTestTickClock>();
     decider->SetClockForTesting(clock.get());
@@ -168,9 +188,10 @@
   }
 }
 
-class PreviewsLitePageDeciderPrefTest : public ChromeRenderViewHostTestHarness {
+class PreviewsLitePageRedirectDeciderPrefTest
+    : public ChromeRenderViewHostTestHarness {
  protected:
-  PreviewsLitePageDecider* GetDeciderWithDRPEnabled(bool enabled) {
+  PreviewsLitePageRedirectDecider* GetDeciderWithDRPEnabled(bool enabled) {
     data_reduction_proxy::DataReductionProxySettings::
         SetDataSaverEnabledForTesting(profile()->GetPrefs(), enabled);
     DataReductionProxyChromeSettingsFactory::GetForBrowserContext(profile())
@@ -180,18 +201,18 @@
                 profile()->GetPath()),
             task_environment()->GetMainThreadTaskRunner());
 
-    decider_ = std::make_unique<PreviewsLitePageDecider>(
+    decider_ = std::make_unique<PreviewsLitePageRedirectDecider>(
         web_contents()->GetBrowserContext());
 
     return decider_.get();
   }
 
  private:
-  std::unique_ptr<PreviewsLitePageDecider> decider_;
+  std::unique_ptr<PreviewsLitePageRedirectDecider> decider_;
 };
 
-TEST_F(PreviewsLitePageDeciderPrefTest, TestDRPDisabled) {
-  PreviewsLitePageDecider* decider = GetDeciderWithDRPEnabled(false);
+TEST_F(PreviewsLitePageRedirectDeciderPrefTest, TestDRPDisabled) {
+  PreviewsLitePageRedirectDecider* decider = GetDeciderWithDRPEnabled(false);
   EXPECT_FALSE(decider->NeedsToNotifyUser());
 
   content::WebContentsTester::For(web_contents())
@@ -201,8 +222,8 @@
   EXPECT_FALSE(decider->NeedsToNotifyUser());
 }
 
-TEST_F(PreviewsLitePageDeciderPrefTest, TestDRPEnabled) {
-  PreviewsLitePageDecider* decider = GetDeciderWithDRPEnabled(true);
+TEST_F(PreviewsLitePageRedirectDeciderPrefTest, TestDRPEnabled) {
+  PreviewsLitePageRedirectDecider* decider = GetDeciderWithDRPEnabled(true);
   EXPECT_TRUE(decider->NeedsToNotifyUser());
 
   content::WebContentsTester::For(web_contents())
@@ -212,8 +233,8 @@
   EXPECT_TRUE(decider->NeedsToNotifyUser());
 }
 
-TEST_F(PreviewsLitePageDeciderPrefTest, TestDRPEnabledCmdLineIgnored) {
-  PreviewsLitePageDecider* decider = GetDeciderWithDRPEnabled(true);
+TEST_F(PreviewsLitePageRedirectDeciderPrefTest, TestDRPEnabledCmdLineIgnored) {
+  PreviewsLitePageRedirectDecider* decider = GetDeciderWithDRPEnabled(true);
   base::CommandLine::ForCurrentProcess()->AppendSwitch(
       previews::switches::kDoNotRequireLitePageRedirectInfoBar);
   EXPECT_FALSE(decider->NeedsToNotifyUser());
@@ -225,8 +246,8 @@
   EXPECT_FALSE(decider->NeedsToNotifyUser());
 }
 
-TEST_F(PreviewsLitePageDeciderPrefTest, TestDRPEnabledThenNotify) {
-  PreviewsLitePageDecider* decider = GetDeciderWithDRPEnabled(true);
+TEST_F(PreviewsLitePageRedirectDeciderPrefTest, TestDRPEnabledThenNotify) {
+  PreviewsLitePageRedirectDecider* decider = GetDeciderWithDRPEnabled(true);
   EXPECT_TRUE(decider->NeedsToNotifyUser());
 
   // Simulate the callback being run.
@@ -238,15 +259,15 @@
   EXPECT_FALSE(decider->NeedsToNotifyUser());
 }
 
-class TestPreviewsLitePageDeciderWebContentsObserver
+class TestPreviewsLitePageRedirectDeciderWebContentsObserver
     : public content::WebContentsObserver,
       public content::WebContentsUserData<
-          TestPreviewsLitePageDeciderWebContentsObserver> {
+          TestPreviewsLitePageRedirectDeciderWebContentsObserver> {
  public:
-  explicit TestPreviewsLitePageDeciderWebContentsObserver(
+  explicit TestPreviewsLitePageRedirectDeciderWebContentsObserver(
       content::WebContents* web_contents)
       : content::WebContentsObserver(web_contents) {}
-  ~TestPreviewsLitePageDeciderWebContentsObserver() override {}
+  ~TestPreviewsLitePageRedirectDeciderWebContentsObserver() override {}
 
   uint64_t last_navigation_page_id() { return last_navigation_page_id_; }
 
@@ -261,28 +282,29 @@
 
  private:
   friend class content::WebContentsUserData<
-      TestPreviewsLitePageDeciderWebContentsObserver>;
+      TestPreviewsLitePageRedirectDeciderWebContentsObserver>;
   uint64_t last_navigation_page_id_ = 0;
   WEB_CONTENTS_USER_DATA_KEY_DECL();
 };
 
-WEB_CONTENTS_USER_DATA_KEY_IMPL(TestPreviewsLitePageDeciderWebContentsObserver)
+WEB_CONTENTS_USER_DATA_KEY_IMPL(
+    TestPreviewsLitePageRedirectDeciderWebContentsObserver)
 
-TEST_F(PreviewsLitePageDeciderPrefTest, TestDRPPageIDIncremented) {
-  TestPreviewsLitePageDeciderWebContentsObserver::CreateForWebContents(
+TEST_F(PreviewsLitePageRedirectDeciderPrefTest, TestDRPPageIDIncremented) {
+  TestPreviewsLitePageRedirectDeciderWebContentsObserver::CreateForWebContents(
       web_contents());
   content::WebContentsTester::For(web_contents())
       ->NavigateAndCommit(GURL(kTestUrl));
 
   uint64_t last_navigation_page_id =
-      TestPreviewsLitePageDeciderWebContentsObserver::FromWebContents(
+      TestPreviewsLitePageRedirectDeciderWebContentsObserver::FromWebContents(
           web_contents())
           ->last_navigation_page_id();
 
   // Tests that the page ID is set for the last navigation, and subsequent
   // generates give an increment.
   EXPECT_NE(static_cast<uint64_t>(0U), last_navigation_page_id);
-  EXPECT_EQ(
-      static_cast<uint64_t>(last_navigation_page_id + 1U),
-      PreviewsLitePageDecider::GeneratePageIdForWebContents(web_contents()));
+  EXPECT_EQ(static_cast<uint64_t>(last_navigation_page_id + 1U),
+            PreviewsLitePageRedirectDecider::GeneratePageIdForWebContents(
+                web_contents()));
 }
diff --git a/chrome/browser/previews/previews_lite_page_predictor.cc b/chrome/browser/previews/previews_lite_page_redirect_predictor.cc
similarity index 87%
rename from chrome/browser/previews/previews_lite_page_predictor.cc
rename to chrome/browser/previews/previews_lite_page_redirect_predictor.cc
index 0159478..ab0b72f 100644
--- a/chrome/browser/previews/previews_lite_page_predictor.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_predictor.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_predictor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_predictor.h"
 
 #include <string>
 
@@ -15,7 +15,7 @@
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
 #include "chrome/browser/predictors/loading_predictor.h"
 #include "chrome/browser/predictors/loading_predictor_factory.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -33,14 +33,14 @@
 #include "content/public/browser/web_contents.h"
 #include "url/gurl.h"
 
-PreviewsLitePagePredictor::~PreviewsLitePagePredictor() {
+PreviewsLitePageRedirectPredictor::~PreviewsLitePageRedirectPredictor() {
   if (g_browser_process->network_quality_tracker()) {
     g_browser_process->network_quality_tracker()
         ->RemoveEffectiveConnectionTypeObserver(this);
   }
 }
 
-PreviewsLitePagePredictor::PreviewsLitePagePredictor(
+PreviewsLitePageRedirectPredictor::PreviewsLitePageRedirectPredictor(
     content::WebContents* web_contents)
     : content::WebContentsObserver(web_contents) {
   DCHECK(content::BrowserThread::CurrentlyOn(content::BrowserThread::UI));
@@ -63,12 +63,12 @@
   }
 }
 
-bool PreviewsLitePagePredictor::DataSaverIsEnabled() const {
+bool PreviewsLitePageRedirectPredictor::DataSaverIsEnabled() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return drp_settings_ && drp_settings_->IsDataReductionProxyEnabled();
 }
 
-bool PreviewsLitePagePredictor::ECTIsSlow() const {
+bool PreviewsLitePageRedirectPredictor::ECTIsSlow() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
   if (!g_browser_process->network_quality_tracker())
@@ -88,7 +88,7 @@
   }
 }
 
-bool PreviewsLitePagePredictor::PageIsBlacklisted(
+bool PreviewsLitePageRedirectPredictor::PageIsBlacklisted(
     content::NavigationHandle* navigation_handle) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Assume that if this is called without a navigation handle, that the URL
@@ -107,12 +107,12 @@
       previews::PreviewsType::LITE_PAGE_REDIRECT);
 }
 
-bool PreviewsLitePagePredictor::IsVisible() const {
+bool PreviewsLitePageRedirectPredictor::IsVisible() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   return web_contents()->GetVisibility() == content::Visibility::VISIBLE;
 }
 
-base::Optional<GURL> PreviewsLitePagePredictor::ShouldActOnPage(
+base::Optional<GURL> PreviewsLitePageRedirectPredictor::ShouldActOnPage(
     content::NavigationHandle* navigation_handle) const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -160,7 +160,7 @@
   return previews::GetLitePageRedirectURLForURL(url);
 }
 
-void PreviewsLitePagePredictor::MaybeToggleTimer(
+void PreviewsLitePageRedirectPredictor::MaybeToggleTimer(
     content::NavigationHandle* navigation_handle) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -181,8 +181,9 @@
     timer_->Start(
         FROM_HERE,
         previews::params::LitePageRedirectPreviewPreresolvePreconnectInterval(),
-        base::BindRepeating(&PreviewsLitePagePredictor::PreresolveOrPreconnect,
-                            base::Unretained(this)));
+        base::BindRepeating(
+            &PreviewsLitePageRedirectPredictor::PreresolveOrPreconnect,
+            base::Unretained(this)));
     PreresolveOrPreconnect();
   } else {
     // Resetting the unique_ptr will delete the timer itself, causing it to stop
@@ -191,7 +192,7 @@
   }
 }
 
-void PreviewsLitePagePredictor::PreresolveOrPreconnect() const {
+void PreviewsLitePageRedirectPredictor::PreresolveOrPreconnect() const {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   DCHECK(timer_);
 
@@ -222,7 +223,7 @@
   }
 }
 
-void PreviewsLitePagePredictor::DidStartNavigation(
+void PreviewsLitePageRedirectPredictor::DidStartNavigation(
     content::NavigationHandle* handle) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -231,7 +232,7 @@
   MaybeToggleTimer(handle);
 }
 
-void PreviewsLitePagePredictor::DidFinishNavigation(
+void PreviewsLitePageRedirectPredictor::DidFinishNavigation(
     content::NavigationHandle* handle) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
@@ -240,16 +241,16 @@
   MaybeToggleTimer(handle);
 }
 
-void PreviewsLitePagePredictor::OnVisibilityChanged(
+void PreviewsLitePageRedirectPredictor::OnVisibilityChanged(
     content::Visibility visibility) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   MaybeToggleTimer(/*navigation_handle=*/nullptr);
 }
 
-void PreviewsLitePagePredictor::OnEffectiveConnectionTypeChanged(
+void PreviewsLitePageRedirectPredictor::OnEffectiveConnectionTypeChanged(
     net::EffectiveConnectionType ect) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   MaybeToggleTimer(/*navigation_handle=*/nullptr);
 }
 
-WEB_CONTENTS_USER_DATA_KEY_IMPL(PreviewsLitePagePredictor)
+WEB_CONTENTS_USER_DATA_KEY_IMPL(PreviewsLitePageRedirectPredictor)
diff --git a/chrome/browser/previews/previews_lite_page_predictor.h b/chrome/browser/previews/previews_lite_page_redirect_predictor.h
similarity index 70%
rename from chrome/browser/previews/previews_lite_page_predictor.h
rename to chrome/browser/previews/previews_lite_page_redirect_predictor.h
index 885cbf9..cef6cdc 100644
--- a/chrome/browser/previews/previews_lite_page_predictor.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_predictor.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_PREDICTOR_H_
-#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_PREDICTOR_H_
+#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_PREDICTOR_H_
+#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_PREDICTOR_H_
 
 #include <memory>
 
@@ -52,12 +52,12 @@
 // * The current page isn't a litepage preview already.
 // * Chrome is in the foreground.
 // * This' |web_contents| is in the foreground.
-class PreviewsLitePagePredictor
+class PreviewsLitePageRedirectPredictor
     : public network::NetworkQualityTracker::EffectiveConnectionTypeObserver,
       public content::WebContentsObserver,
-      public content::WebContentsUserData<PreviewsLitePagePredictor> {
+      public content::WebContentsUserData<PreviewsLitePageRedirectPredictor> {
  public:
-  ~PreviewsLitePagePredictor() override;
+  ~PreviewsLitePageRedirectPredictor() override;
 
   // content::WebContentsObserver:
   void DidFinishNavigation(content::NavigationHandle* handle) override;
@@ -69,7 +69,8 @@
       net::EffectiveConnectionType ect) override;
 
  protected:
-  explicit PreviewsLitePagePredictor(content::WebContents* web_contents);
+  explicit PreviewsLitePageRedirectPredictor(
+      content::WebContents* web_contents);
 
   // Virtual for testing.
   virtual bool DataSaverIsEnabled() const;
@@ -82,26 +83,32 @@
   virtual bool IsVisible() const;
 
  private:
-  friend class content::WebContentsUserData<PreviewsLitePagePredictor>;
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  friend class content::WebContentsUserData<PreviewsLitePageRedirectPredictor>;
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            AllConditionsMet_Origin);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            AllConditionsMet_Preview);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, FeatureDisabled);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           FeatureDisabled);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            DataSaverDisabled);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, NoNavigation);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, ECTNotSlow);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           NoNavigation);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           ECTNotSlow);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            ECTNotSlowOnPreview);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, PageBlacklisted);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, NotVisible);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest, InsecurePage);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           PageBlacklisted);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           NotVisible);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
+                           InsecurePage);
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            ToggleMultipleTimes_Navigations);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            ToggleMultipleTimes_ECT);
-  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePagePredictorUnitTest,
+  FRIEND_TEST_ALL_PREFIXES(PreviewsLitePageRedirectPredictorUnitTest,
                            ToggleMultipleTimes_Visibility);
 
   // Returns the GURL that should be preresolved, if any.
@@ -132,7 +139,7 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePagePredictor);
+  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageRedirectPredictor);
 };
 
-#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_PREDICTOR_H_
+#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_PREDICTOR_H_
diff --git a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc b/chrome/browser/previews/previews_lite_page_redirect_predictor_unittest.cc
similarity index 83%
rename from chrome/browser/previews/previews_lite_page_predictor_unittest.cc
rename to chrome/browser/previews/previews_lite_page_redirect_predictor_unittest.cc
index cb38bb2..6a3bd05 100644
--- a/chrome/browser/previews/previews_lite_page_predictor_unittest.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_predictor_unittest.cc
@@ -2,13 +2,13 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_predictor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_predictor.h"
 
 #include <vector>
 
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "components/previews/core/previews_features.h"
 #include "content/public/browser/web_contents.h"
@@ -20,20 +20,21 @@
 const char kTestUrl[] = "https://www.test.com/";
 }
 
-class TestPreviewsLitePagePredictor : public PreviewsLitePagePredictor {
+class TestPreviewsLitePageRedirectPredictor
+    : public PreviewsLitePageRedirectPredictor {
  public:
-  TestPreviewsLitePagePredictor(content::WebContents* web_contents,
-                                bool data_saver_enabled,
-                                bool ect_is_slow,
-                                bool page_is_blacklisted,
-                                bool is_visible)
-      : PreviewsLitePagePredictor(web_contents),
+  TestPreviewsLitePageRedirectPredictor(content::WebContents* web_contents,
+                                        bool data_saver_enabled,
+                                        bool ect_is_slow,
+                                        bool page_is_blacklisted,
+                                        bool is_visible)
+      : PreviewsLitePageRedirectPredictor(web_contents),
         data_saver_enabled_(data_saver_enabled),
         ect_is_slow_(ect_is_slow),
         page_is_blacklisted_(page_is_blacklisted),
         is_visible_(is_visible) {}
 
-  // PreviewsLitePagePredictor:
+  // PreviewsLitePageRedirectPredictor:
   bool DataSaverIsEnabled() const override { return data_saver_enabled_; }
   bool ECTIsSlow() const override { return ect_is_slow_; }
   bool PageIsBlacklisted(
@@ -53,7 +54,7 @@
 };
 
 // True for preresolve testing, false for preconnect.
-class PreviewsLitePagePredictorUnitTest
+class PreviewsLitePageRedirectPredictorUnitTest
     : public ChromeRenderViewHostTestHarness,
       public testing::WithParamInterface<bool> {
  public:
@@ -74,7 +75,7 @@
       scoped_feature_list_.InitAndDisableFeature(
           previews::features::kLitePageServerPreviews);
     }
-    predictor_.reset(new TestPreviewsLitePagePredictor(
+    predictor_.reset(new TestPreviewsLitePageRedirectPredictor(
         web_contents(), data_saver_enabled, ect_is_slow, page_is_blacklisted,
         is_visible));
     test_handle_.reset(
@@ -109,15 +110,17 @@
     return "Previews.ServerLitePage.PreconnectedToPreviewServer";
   }
 
-  TestPreviewsLitePagePredictor* predictor() const { return predictor_.get(); }
+  TestPreviewsLitePageRedirectPredictor* predictor() const {
+    return predictor_.get();
+  }
 
  private:
   base::test::ScopedFeatureList scoped_feature_list_;
-  std::unique_ptr<TestPreviewsLitePagePredictor> predictor_;
+  std::unique_ptr<TestPreviewsLitePageRedirectPredictor> predictor_;
   std::unique_ptr<content::MockNavigationHandle> test_handle_;
 };
 
-TEST_P(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Origin) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, AllConditionsMet_Origin) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -134,7 +137,7 @@
   histogram_tester.ExpectTotalCount(GetOtherHistogramName(), 0);
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, AllConditionsMet_Preview) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, AllConditionsMet_Preview) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -152,7 +155,7 @@
   histogram_tester.ExpectTotalCount(GetOtherHistogramName(), 0);
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, FeatureDisabled) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, FeatureDisabled) {
   RunTest(false /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -163,7 +166,7 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, DataSaverDisabled) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, DataSaverDisabled) {
   RunTest(true /* feature_enabled */, false /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -174,7 +177,7 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, ECTNotSlow) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, ECTNotSlow) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           false /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -185,7 +188,7 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, ECTNotSlowOnPreview) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, ECTNotSlowOnPreview) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           false /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -197,7 +200,7 @@
   EXPECT_TRUE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, PageBlacklisted) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, PageBlacklisted) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, true /* page_is_blacklisted */,
           true /* is_visible */);
@@ -208,7 +211,7 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, NotVisible) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, NotVisible) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           false /* is_visible */);
@@ -219,7 +222,7 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, InsecurePage) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, InsecurePage) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -230,7 +233,8 @@
   EXPECT_FALSE(predictor()->ShouldActOnPage(nullptr));
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_Navigations) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest,
+       ToggleMultipleTimes_Navigations) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -253,7 +257,7 @@
   histogram_tester.ExpectTotalCount(GetOtherHistogramName(), 0);
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_ECT) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest, ToggleMultipleTimes_ECT) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -278,7 +282,8 @@
   histogram_tester.ExpectTotalCount(GetOtherHistogramName(), 0);
 }
 
-TEST_P(PreviewsLitePagePredictorUnitTest, ToggleMultipleTimes_Visibility) {
+TEST_P(PreviewsLitePageRedirectPredictorUnitTest,
+       ToggleMultipleTimes_Visibility) {
   RunTest(true /* feature_enabled */, true /* data_saver_enabled */,
           true /* ect_is_slow */, false /* page_is_blacklisted */,
           true /* is_visible */);
@@ -303,5 +308,5 @@
 
 // True if preresolving, false for preconnecting.
 INSTANTIATE_TEST_SUITE_P(/* empty prefix */,
-                         PreviewsLitePagePredictorUnitTest,
+                         PreviewsLitePageRedirectPredictorUnitTest,
                          testing::Bool());
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc b/chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.cc
similarity index 86%
rename from chrome/browser/previews/previews_lite_page_serving_url_loader.cc
rename to chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.cc
index fcf8f18..c07a4ad 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_serving_url_loader.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h"
 
 #include <stdint.h>
 
@@ -20,8 +20,8 @@
 #include "base/task/task_traits.h"
 #include "base/threading/thread_task_runner_handle.h"
 #include "base/time/time.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/browser/profiles/profile.h"
@@ -54,7 +54,7 @@
 
   PreviewsServiceFactory::GetForProfile(
       Profile::FromBrowserContext(web_contents->GetBrowserContext()))
-      ->previews_lite_page_decider()
+      ->previews_lite_page_redirect_decider()
       ->BlacklistBypassedHost(host, duration);
 }
 
@@ -77,7 +77,7 @@
 
   PreviewsServiceFactory::GetForProfile(
       Profile::FromBrowserContext(web_contents->GetBrowserContext()))
-      ->previews_lite_page_decider()
+      ->previews_lite_page_redirect_decider()
       ->SetServerUnavailableFor(duration);
 }
 
@@ -100,7 +100,7 @@
 
   PreviewsServiceFactory::GetForProfile(
       Profile::FromBrowserContext(web_contents->GetBrowserContext()))
-      ->previews_lite_page_decider()
+      ->previews_lite_page_redirect_decider()
       ->ReportDataSavings(network_bytes, original_bytes, host);
 }
 
@@ -116,9 +116,6 @@
 
 const base::TimeDelta kBlacklistDuration = base::TimeDelta::FromDays(30);
 
-// Used for mojo pipe size. Same constant as navigation code.
-constexpr size_t kServingDefaultAllocationSize = 512 * 1024;
-
 const net::NetworkTrafficAnnotationTag kPreviewsTrafficAnnotation =
     net::DefineNetworkTrafficAnnotation("https_server_previews_navigation", R"(
       semantics {
@@ -153,13 +150,13 @@
 
 }  // namespace
 
-PreviewsLitePageServingURLLoader::PreviewsLitePageServingURLLoader(
-    ResultCallback result_callback)
+PreviewsLitePageRedirectServingURLLoader::
+    PreviewsLitePageRedirectServingURLLoader(ResultCallback result_callback)
     : url_loader_binding_(this),
       result_callback_(std::move(result_callback)),
       binding_(this) {}
 
-void PreviewsLitePageServingURLLoader::StartNetworkRequest(
+void PreviewsLitePageRedirectServingURLLoader::StartNetworkRequest(
     const network::ResourceRequest& request,
     const scoped_refptr<network::SharedURLLoaderFactory>&
         network_loader_factory,
@@ -170,9 +167,9 @@
 
   url_loader_binding_.Bind(mojo::MakeRequest(&client),
                            base::ThreadTaskRunnerHandle::Get());
-  url_loader_binding_.set_connection_error_handler(
-      base::BindOnce(&PreviewsLitePageServingURLLoader::OnConnectionError,
-                     base::Unretained(this)));
+  url_loader_binding_.set_connection_error_handler(base::BindOnce(
+      &PreviewsLitePageRedirectServingURLLoader::OnConnectionError,
+      base::Unretained(this)));
 
   // Create a network service URL loader with passed in params.
   network_loader_factory->CreateLoaderAndStart(
@@ -182,13 +179,14 @@
 
   timeout_timer_.Start(
       FROM_HERE, previews::params::LitePagePreviewsNavigationTimeoutDuration(),
-      base::BindOnce(&PreviewsLitePageServingURLLoader::Timeout,
+      base::BindOnce(&PreviewsLitePageRedirectServingURLLoader::Timeout,
                      weak_ptr_factory_.GetWeakPtr()));
 }
 
-PreviewsLitePageServingURLLoader::~PreviewsLitePageServingURLLoader() = default;
+PreviewsLitePageRedirectServingURLLoader::
+    ~PreviewsLitePageRedirectServingURLLoader() = default;
 
-void PreviewsLitePageServingURLLoader::Timeout() {
+void PreviewsLitePageRedirectServingURLLoader::Timeout() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // If the result is already determined, don't do anything.
   if (result_callback_.is_null())
@@ -200,29 +198,30 @@
   Fallback();
 }
 
-void PreviewsLitePageServingURLLoader::Fallback() {
+void PreviewsLitePageRedirectServingURLLoader::Fallback() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   std::move(result_callback_)
       .Run(ServingLoaderResult::kFallback, base::nullopt, nullptr);
 }
 
-RequestHandler PreviewsLitePageServingURLLoader::ServingResponseHandler() {
+RequestHandler
+PreviewsLitePageRedirectServingURLLoader::ServingResponseHandler() {
   DCHECK(result_callback_.is_null());
   return base::BindOnce(
-      &PreviewsLitePageServingURLLoader::SetUpForwardingClient,
+      &PreviewsLitePageRedirectServingURLLoader::SetUpForwardingClient,
       weak_ptr_factory_.GetWeakPtr());
 }
 
-void PreviewsLitePageServingURLLoader::SetUpForwardingClient(
+void PreviewsLitePageRedirectServingURLLoader::SetUpForwardingClient(
     const network::ResourceRequest& /* resource_request */,
     network::mojom::URLLoaderRequest request,
     network::mojom::URLLoaderClientPtr forwarding_client) {
   // Bind to the content/ navigation code.
   DCHECK(!binding_.is_bound());
   binding_.Bind(std::move(request));
-  binding_.set_connection_error_handler(
-      base::BindOnce(&PreviewsLitePageServingURLLoader::OnConnectionError,
-                     weak_ptr_factory_.GetWeakPtr()));
+  binding_.set_connection_error_handler(base::BindOnce(
+      &PreviewsLitePageRedirectServingURLLoader::OnConnectionError,
+      weak_ptr_factory_.GetWeakPtr()));
   forwarding_client_ = std::move(forwarding_client);
 
   // If there was an URLLoader error between handing off this handler and
@@ -234,21 +233,13 @@
     return;
   }
 
-  mojo::DataPipe pipe(kServingDefaultAllocationSize);
-  if (!pipe.consumer_handle.is_valid()) {
-    network_url_loader_.reset();
-    url_loader_binding_.Close();
-    delete this;
-    return;
-  }
-
   forwarding_client_->OnReceiveResponse(resource_response_->head);
 
   // Resume previously paused network service URLLoader.
   url_loader_binding_.ResumeIncomingMethodCallProcessing();
 }
 
-void PreviewsLitePageServingURLLoader::OnReceiveResponse(
+void PreviewsLitePageRedirectServingURLLoader::OnReceiveResponse(
     network::mojom::URLResponseHeadPtr head) {
   DCHECK(!forwarding_client_);
 
@@ -314,7 +305,7 @@
       .Run(ServingLoaderResult::kSuccess, base::nullopt, nullptr);
 }
 
-void PreviewsLitePageServingURLLoader::OnReceiveRedirect(
+void PreviewsLitePageRedirectServingURLLoader::OnReceiveRedirect(
     const net::RedirectInfo& redirect_info,
     network::mojom::URLResponseHeadPtr head) {
   DCHECK(!forwarding_client_);
@@ -362,7 +353,7 @@
       .Run(ServingLoaderResult::kRedirect, redirect_info, resource_response_);
 }
 
-void PreviewsLitePageServingURLLoader::OnUploadProgress(
+void PreviewsLitePageRedirectServingURLLoader::OnUploadProgress(
     int64_t current_position,
     int64_t total_size,
     OnUploadProgressCallback callback) {
@@ -370,24 +361,24 @@
   NOTREACHED();
 }
 
-void PreviewsLitePageServingURLLoader::OnReceiveCachedMetadata(
+void PreviewsLitePageRedirectServingURLLoader::OnReceiveCachedMetadata(
     mojo_base::BigBuffer data) {
   // Do nothing. This is not supported for navigation loader.
 }
 
-void PreviewsLitePageServingURLLoader::OnTransferSizeUpdated(
+void PreviewsLitePageRedirectServingURLLoader::OnTransferSizeUpdated(
     int32_t transfer_size_diff) {
   DCHECK(forwarding_client_);
   forwarding_client_->OnTransferSizeUpdated(transfer_size_diff);
 }
 
-void PreviewsLitePageServingURLLoader::OnStartLoadingResponseBody(
+void PreviewsLitePageRedirectServingURLLoader::OnStartLoadingResponseBody(
     mojo::ScopedDataPipeConsumerHandle body) {
   DCHECK(forwarding_client_);
   forwarding_client_->OnStartLoadingResponseBody(std::move(body));
 }
 
-void PreviewsLitePageServingURLLoader::OnComplete(
+void PreviewsLitePageRedirectServingURLLoader::OnComplete(
     const network::URLLoaderCompletionStatus& status) {
   if (forwarding_client_) {
     base::UmaHistogramSparse(
@@ -411,7 +402,7 @@
   Fallback();
 }
 
-void PreviewsLitePageServingURLLoader::FollowRedirect(
+void PreviewsLitePageRedirectServingURLLoader::FollowRedirect(
     const std::vector<std::string>& removed_headers,
     const net::HttpRequestHeaders& modified_headers,
     const base::Optional<GURL>& new_url) {
@@ -420,7 +411,7 @@
   NOTREACHED();
 }
 
-void PreviewsLitePageServingURLLoader::SetPriority(
+void PreviewsLitePageRedirectServingURLLoader::SetPriority(
     net::RequestPriority priority,
     int32_t intra_priority_value) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -428,18 +419,18 @@
   network_url_loader_->SetPriority(priority, intra_priority_value);
 }
 
-void PreviewsLitePageServingURLLoader::PauseReadingBodyFromNet() {
+void PreviewsLitePageRedirectServingURLLoader::PauseReadingBodyFromNet() {
   // Pass through.
   network_url_loader_->PauseReadingBodyFromNet();
 }
 
-void PreviewsLitePageServingURLLoader::ResumeReadingBodyFromNet() {
+void PreviewsLitePageRedirectServingURLLoader::ResumeReadingBodyFromNet() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Pass through.
   network_url_loader_->ResumeReadingBodyFromNet();
 }
 
-void PreviewsLitePageServingURLLoader::OnConnectionError() {
+void PreviewsLitePageRedirectServingURLLoader::OnConnectionError() {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // When we are not yet bound to the navigation code, fallback, which will
   // destroy this object.
diff --git a/chrome/browser/previews/previews_lite_page_serving_url_loader.h b/chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h
similarity index 90%
rename from chrome/browser/previews/previews_lite_page_serving_url_loader.h
rename to chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h
index 17a6fb4f..e9bfaea 100644
--- a/chrome/browser/previews/previews_lite_page_serving_url_loader.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_SERVING_URL_LOADER_H_
-#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_SERVING_URL_LOADER_H_
+#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_SERVING_URL_LOADER_H_
+#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_SERVING_URL_LOADER_H_
 
 #include <vector>
 
@@ -44,14 +44,15 @@
 // successful, calls a success callback. Otherwise, it calls fallback in the
 // case of a failure and redirect in the case of a redirect served from the lite
 // pages service.
-class PreviewsLitePageServingURLLoader
+class PreviewsLitePageRedirectServingURLLoader
     : public network::mojom::URLLoader,
       public network::mojom::URLLoaderClient {
  public:
   // Creates a network service URLLoader, binds to the URL Loader, and stores
   // the various callbacks.
-  explicit PreviewsLitePageServingURLLoader(ResultCallback result_callback);
-  ~PreviewsLitePageServingURLLoader() override;
+  explicit PreviewsLitePageRedirectServingURLLoader(
+      ResultCallback result_callback);
+  ~PreviewsLitePageRedirectServingURLLoader() override;
 
   // Begins the underlying network URLLoader to fetch the preview.
   // |network_loader_factory| creates the URLLoader using the other parameters
@@ -137,12 +138,12 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  base::WeakPtrFactory<PreviewsLitePageServingURLLoader> weak_ptr_factory_{
-      this};
+  base::WeakPtrFactory<PreviewsLitePageRedirectServingURLLoader>
+      weak_ptr_factory_{this};
 
-  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageServingURLLoader);
+  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageRedirectServingURLLoader);
 };
 
 }  // namespace previews
 
-#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_SERVING_URL_LOADER_H_
+#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_SERVING_URL_LOADER_H_
diff --git a/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc b/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
index ddcb548..a757dc7 100644
--- a/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader.cc
@@ -10,7 +10,7 @@
 #include "base/bind.h"
 #include "base/memory/ptr_util.h"
 #include "base/strings/stringprintf.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/profiles/profile.h"
 #include "components/previews/core/previews_experiments.h"
 #include "components/previews/core/previews_lite_page_redirect.h"
@@ -145,9 +145,10 @@
     origin_probe_finished_successfully_ = true;
   }
 
-  serving_url_loader_ = std::make_unique<PreviewsLitePageServingURLLoader>(
-      base::BindOnce(&PreviewsLitePageRedirectURLLoader::OnResultDetermined,
-                     weak_ptr_factory_.GetWeakPtr()));
+  serving_url_loader_ =
+      std::make_unique<PreviewsLitePageRedirectServingURLLoader>(
+          base::BindOnce(&PreviewsLitePageRedirectURLLoader::OnResultDetermined,
+                         weak_ptr_factory_.GetWeakPtr()));
   // |serving_url_loader_| can be null after this call.
   serving_url_loader_->StartNetworkRequest(
       modified_resource_request_, network_loader_factory, frame_tree_node_id);
diff --git a/chrome/browser/previews/previews_lite_page_redirect_url_loader.h b/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
index 54887760..5915a3e0 100644
--- a/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader.h
@@ -11,7 +11,7 @@
 #include "base/optional.h"
 #include "base/sequence_checker.h"
 #include "chrome/browser/availability/availability_prober.h"
-#include "chrome/browser/previews/previews_lite_page_serving_url_loader.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h"
 #include "content/public/browser/url_loader_request_interceptor.h"
 #include "mojo/public/cpp/bindings/binding.h"
 #include "mojo/public/cpp/system/data_pipe.h"
@@ -25,7 +25,8 @@
 namespace previews {
 
 using HandleRequest = base::OnceCallback<void(
-    std::unique_ptr<PreviewsLitePageServingURLLoader> serving_url_loader,
+    std::unique_ptr<PreviewsLitePageRedirectServingURLLoader>
+        serving_url_loader,
     content::URLLoaderRequestInterceptor::RequestHandler handler)>;
 
 // A URL loader that attempts to fetch an HTTPS server lite page, and if
@@ -123,7 +124,7 @@
                             network_loader_factory);
 
   // The underlying URLLoader that speculatively tries to fetch the lite page.
-  std::unique_ptr<PreviewsLitePageServingURLLoader> serving_url_loader_;
+  std::unique_ptr<PreviewsLitePageRedirectServingURLLoader> serving_url_loader_;
 
   // A copy of the initial resource request that has been modified to fetch
   // the lite page.
diff --git a/chrome/browser/previews/previews_lite_page_url_loader_interceptor.cc b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.cc
similarity index 88%
rename from chrome/browser/previews/previews_lite_page_url_loader_interceptor.cc
rename to chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.cc
index 270bd7126..d27ee6b 100644
--- a/chrome/browser/previews/previews_lite_page_url_loader_interceptor.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 
 #include <stdint.h>
 #include <string>
@@ -19,7 +19,7 @@
 #include "base/time/time.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
 #include "chrome/browser/profiles/profile_io_data.h"
 #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h"
@@ -103,13 +103,14 @@
                             reason);
 }
 
-bool HandlePreviewsLitePageURLRewrite(
+bool HandlePreviewsLitePageRedirectURLRewrite(
     GURL* url,
     content::BrowserContext* browser_context) {
   // Don't change the |url|, just register our interest in reversing it before
-  // it is displayed to the user in |HandlePreviewsLitePageURLRewriteReverse|.
-  // Without returning true here, |HandlePreviewsLitePageURLRewriteReverse|
-  // would not be called.
+  // it is displayed to the user in
+  // |HandlePreviewsLitePageRedirectURLRewriteReverse|. Without returning true
+  // here, |HandlePreviewsLitePageRedirectURLRewriteReverse| would not be
+  // called.
 
   auto* data_reduction_proxy_settings =
       DataReductionProxyChromeSettingsFactory::GetForBrowserContext(
@@ -122,7 +123,7 @@
          previews::params::IsLitePageServerPreviewsEnabled();
 }
 
-bool HandlePreviewsLitePageURLRewriteReverse(
+bool HandlePreviewsLitePageRedirectURLRewriteReverse(
     GURL* url,
     content::BrowserContext* browser_context) {
   std::string original_url;
@@ -168,22 +169,24 @@
   return previews_url;
 }
 
-PreviewsLitePageURLLoaderInterceptor::PreviewsLitePageURLLoaderInterceptor(
-    const scoped_refptr<network::SharedURLLoaderFactory>&
-        network_loader_factory,
-    uint64_t page_id,
-    int frame_tree_node_id)
+PreviewsLitePageRedirectURLLoaderInterceptor::
+    PreviewsLitePageRedirectURLLoaderInterceptor(
+        const scoped_refptr<network::SharedURLLoaderFactory>&
+            network_loader_factory,
+        uint64_t page_id,
+        int frame_tree_node_id)
     : network_loader_factory_(network_loader_factory),
       page_id_(page_id),
       frame_tree_node_id_(frame_tree_node_id) {}
 
-PreviewsLitePageURLLoaderInterceptor::~PreviewsLitePageURLLoaderInterceptor() {}
+PreviewsLitePageRedirectURLLoaderInterceptor::
+    ~PreviewsLitePageRedirectURLLoaderInterceptor() {}
 
 // static
 PreviewsUserData::ServerLitePageInfo*
-PreviewsLitePageURLLoaderInterceptor::GetOrCreateServerLitePageInfo(
+PreviewsLitePageRedirectURLLoaderInterceptor::GetOrCreateServerLitePageInfo(
     content::NavigationHandle* navigation_handle,
-    PreviewsLitePageDecider* decider) {
+    PreviewsLitePageRedirectDecider* decider) {
   PreviewsUITabHelper* ui_tab_helper =
       PreviewsUITabHelper::FromWebContents(navigation_handle->GetWebContents());
   if (!ui_tab_helper)
@@ -229,7 +232,7 @@
   return info;
 }
 
-void PreviewsLitePageURLLoaderInterceptor::MaybeCreateLoader(
+void PreviewsLitePageRedirectURLLoaderInterceptor::MaybeCreateLoader(
     const network::ResourceRequest& tentative_resource_request,
     content::BrowserContext* browser_context,
     content::URLLoaderRequestInterceptor::LoaderCallback callback) {
@@ -272,7 +275,7 @@
   std::move(callback).Run({});
 }
 
-void PreviewsLitePageURLLoaderInterceptor::CreateRedirectLoader(
+void PreviewsLitePageRedirectURLLoaderInterceptor::CreateRedirectLoader(
     const network::ResourceRequest& tentative_resource_request,
     content::BrowserContext* browser_context,
     content::URLLoaderRequestInterceptor::LoaderCallback callback) {
@@ -283,7 +286,7 @@
   redirect_url_loader_ = std::make_unique<PreviewsLitePageRedirectURLLoader>(
       browser_context, tentative_resource_request,
       base::BindOnce(
-          &PreviewsLitePageURLLoaderInterceptor::HandleRedirectLoader,
+          &PreviewsLitePageRedirectURLLoaderInterceptor::HandleRedirectLoader,
           base::Unretained(this), std::move(callback)));
 
   // |redirect_url_loader_| can be null after this call.
@@ -292,23 +295,24 @@
       frame_tree_node_id_);
 }
 
-void PreviewsLitePageURLLoaderInterceptor::CreateOriginalURLLoader(
+void PreviewsLitePageRedirectURLLoaderInterceptor::CreateOriginalURLLoader(
     const network::ResourceRequest& tentative_resource_request,
     const GURL& original_url,
     content::URLLoaderRequestInterceptor::LoaderCallback callback) {
   redirect_url_loader_ = std::make_unique<PreviewsLitePageRedirectURLLoader>(
       nullptr, tentative_resource_request,
       base::BindOnce(
-          &PreviewsLitePageURLLoaderInterceptor::HandleRedirectLoader,
+          &PreviewsLitePageRedirectURLLoaderInterceptor::HandleRedirectLoader,
           base::Unretained(this), std::move(callback)));
 
   // |redirect_url_loader_| can be null after this call.
   redirect_url_loader_->StartRedirectToOriginalURL(original_url);
 }
 
-void PreviewsLitePageURLLoaderInterceptor::HandleRedirectLoader(
+void PreviewsLitePageRedirectURLLoaderInterceptor::HandleRedirectLoader(
     content::URLLoaderRequestInterceptor::LoaderCallback callback,
-    std::unique_ptr<PreviewsLitePageServingURLLoader> serving_url_loader,
+    std::unique_ptr<PreviewsLitePageRedirectServingURLLoader>
+        serving_url_loader,
     RequestHandler handler) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
   // Handle any failure by using default loader.
diff --git a/chrome/browser/previews/previews_lite_page_url_loader_interceptor.h b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h
similarity index 84%
rename from chrome/browser/previews/previews_lite_page_url_loader_interceptor.h
rename to chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h
index 9ecd2f46..3de4f34 100644
--- a/chrome/browser/previews/previews_lite_page_url_loader_interceptor.h
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h
@@ -2,8 +2,8 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_URL_LOADER_INTERCEPTOR_H_
-#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_URL_LOADER_INTERCEPTOR_H_
+#ifndef CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_URL_LOADER_INTERCEPTOR_H_
+#define CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_URL_LOADER_INTERCEPTOR_H_
 
 #include <stdint.h>
 
@@ -12,8 +12,8 @@
 
 #include "base/memory/scoped_refptr.h"
 #include "base/sequence_checker.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.h"
 #include "chrome/browser/previews/previews_lite_page_redirect_url_loader.h"
-#include "chrome/browser/previews/previews_lite_page_serving_url_loader.h"
 #include "components/previews/content/previews_user_data.h"
 #include "content/public/browser/url_loader_request_interceptor.h"
 #include "net/http/http_request_headers.h"
@@ -25,7 +25,7 @@
 class NavigationHandle;
 }  // namespace content
 
-class PreviewsLitePageDecider;
+class PreviewsLitePageRedirectDecider;
 
 namespace previews {
 
@@ -110,17 +110,18 @@
 
 // If the given URL is a LitePage Preview URL, this returns true but does not
 // change the |url|. This will set |update_virtual_url_with_url| on
-// NavigationEntry so that |HandlePreviewsLitePageURLRewriteReverse| is called
-// when the navigation finishes.
-// Note: This means the virtual URL will not be set during the navigation load.
-// This is handled separately in UI on Android.
-bool HandlePreviewsLitePageURLRewrite(GURL* url,
-                                      content::BrowserContext* browser_context);
+// NavigationEntry so that |HandlePreviewsLitePageRedirectURLRewriteReverse| is
+// called when the navigation finishes. Note: This means the virtual URL will
+// not be set during the navigation load. This is handled separately in UI on
+// Android.
+bool HandlePreviewsLitePageRedirectURLRewrite(
+    GURL* url,
+    content::BrowserContext* browser_context);
 
 // Handles translating the given Lite Page URL to the original URL. Returns true
 // if the given |url| was a preview, otherwise returns false and does not change
 // |url|.
-bool HandlePreviewsLitePageURLRewriteReverse(
+bool HandlePreviewsLitePageRedirectURLRewriteReverse(
     GURL* url,
     content::BrowserContext* browser_context);
 
@@ -130,15 +131,15 @@
 // A class that attempts to intercept requests and fetch the Lite Page version
 // of the request. Its lifetime matches that of the content/ navigation loader
 // code. Currently, not fully implemented.
-class PreviewsLitePageURLLoaderInterceptor
+class PreviewsLitePageRedirectURLLoaderInterceptor
     : public content::URLLoaderRequestInterceptor {
  public:
-  PreviewsLitePageURLLoaderInterceptor(
+  PreviewsLitePageRedirectURLLoaderInterceptor(
       const scoped_refptr<network::SharedURLLoaderFactory>&
           network_loader_factory,
       uint64_t page_id,
       int frame_tree_node_id);
-  ~PreviewsLitePageURLLoaderInterceptor() override;
+  ~PreviewsLitePageRedirectURLLoaderInterceptor() override;
 
   // Gets the ServerLitePageInfo struct from an existing attempted lite page
   // navigation, if there is one. If not, returns a new ServerLitePageInfo
@@ -146,7 +147,7 @@
   // by the PreviewsUserData associated with navigation_handle().
   static PreviewsUserData::ServerLitePageInfo* GetOrCreateServerLitePageInfo(
       content::NavigationHandle* navigation_handle,
-      PreviewsLitePageDecider* manager);
+      PreviewsLitePageRedirectDecider* manager);
 
   // content::URLLaoderRequestInterceptor:
   void MaybeCreateLoader(
@@ -171,7 +172,8 @@
   // Runs |callback| with |handler| and stores |serving_url_loader|.
   void HandleRedirectLoader(
       content::URLLoaderRequestInterceptor::LoaderCallback callback,
-      std::unique_ptr<PreviewsLitePageServingURLLoader> serving_url_loader,
+      std::unique_ptr<PreviewsLitePageRedirectServingURLLoader>
+          serving_url_loader,
       RequestHandler handler);
 
   // All URLs already seen in this navigation. This prevents redirect loops,
@@ -187,7 +189,7 @@
   // response), this object will exist until a redirect to the lite page URL has
   // been handed off to the navigation stack and the next request is being
   // handled.
-  std::unique_ptr<PreviewsLitePageServingURLLoader> serving_url_loader_;
+  std::unique_ptr<PreviewsLitePageRedirectServingURLLoader> serving_url_loader_;
 
   // Factory to create a network service URLLoader.
   scoped_refptr<network::SharedURLLoaderFactory> network_loader_factory_;
@@ -200,9 +202,9 @@
 
   SEQUENCE_CHECKER(sequence_checker_);
 
-  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageURLLoaderInterceptor);
+  DISALLOW_COPY_AND_ASSIGN(PreviewsLitePageRedirectURLLoaderInterceptor);
 };
 
 }  // namespace previews
 
-#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_URL_LOADER_INTERCEPTOR_H_
+#endif  // CHROME_BROWSER_PREVIEWS_PREVIEWS_LITE_PAGE_REDIRECT_URL_LOADER_INTERCEPTOR_H_
diff --git a/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor_unittest.cc
similarity index 87%
rename from chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc
rename to chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor_unittest.cc
index 4667d59..df3bc73 100644
--- a/chrome/browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc
+++ b/chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor_unittest.cc
@@ -2,7 +2,7 @@
 // Use of this source code is governed by a BSD-style license that can be
 // found in the LICENSE file.
 
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 
 #include <map>
 #include <memory>
@@ -18,7 +18,7 @@
 #include "base/test/metrics/histogram_tester.h"
 #include "base/test/scoped_feature_list.h"
 #include "base/test/task_environment.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_features.h"
 #include "components/data_reduction_proxy/core/common/data_reduction_proxy_params.h"
@@ -62,20 +62,21 @@
 
 const GURL kTestUrl("https://google.com/path");
 
-class PreviewsLitePageURLLoaderInterceptorTest : public testing::Test {
+class PreviewsLitePageRedirectURLLoaderInterceptorTest : public testing::Test {
  public:
-  PreviewsLitePageURLLoaderInterceptorTest()
+  PreviewsLitePageRedirectURLLoaderInterceptorTest()
       : task_environment_(content::BrowserTaskEnvironment::IO_MAINLOOP),
         shared_factory_(
             base::MakeRefCounted<network::WeakWrapperSharedURLLoaderFactory>(
                 &test_url_loader_factory_)) {}
-  ~PreviewsLitePageURLLoaderInterceptorTest() override {}
+  ~PreviewsLitePageRedirectURLLoaderInterceptorTest() override {}
 
   void TearDown() override {}
 
   void SetUp() override {
-    interceptor_ = std::make_unique<PreviewsLitePageURLLoaderInterceptor>(
-        shared_factory_, 1, 2);
+    interceptor_ =
+        std::make_unique<PreviewsLitePageRedirectURLLoaderInterceptor>(
+            shared_factory_, 1, 2);
 
     scoped_feature_list_.InitAndEnableFeatureWithParameters(
         features::kLitePageServerPreviews, {{"should_probe_origin", "true"}});
@@ -105,7 +106,9 @@
 
   base::Optional<bool> callback_was_empty() { return callback_was_empty_; }
 
-  PreviewsLitePageURLLoaderInterceptor& interceptor() { return *interceptor_; }
+  PreviewsLitePageRedirectURLLoaderInterceptor& interceptor() {
+    return *interceptor_;
+  }
 
  protected:
   content::BrowserTaskEnvironment task_environment_;
@@ -116,11 +119,11 @@
   base::test::ScopedFeatureList scoped_feature_list_;
   network::TestURLLoaderFactory test_url_loader_factory_;
   scoped_refptr<network::SharedURLLoaderFactory> shared_factory_;
-  std::unique_ptr<PreviewsLitePageURLLoaderInterceptor> interceptor_;
+  std::unique_ptr<PreviewsLitePageRedirectURLLoaderInterceptor> interceptor_;
 };
 
 // Check that we don't trigger when previews are not allowed.
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
        InterceptRequestPreviewsState_PreviewsOff) {
   base::HistogramTester histogram_tester;
 
@@ -135,8 +138,9 @@
   request.previews_state = content::PREVIEWS_OFF;
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", false, 1);
@@ -148,7 +152,7 @@
 }
 
 // Check that we trigger when previews are allowed and the probe is successful.
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
        MAYBE_InterceptRequestPreviewsState_ProbeSuccess) {
   base::HistogramTester histogram_tester;
 
@@ -165,8 +169,9 @@
   request.previews_state = content::LITE_PAGE_REDIRECT_ON;
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
@@ -178,7 +183,7 @@
   LOG(ERROR) << "test end";
 }
 
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
        InterceptRequestPreviewsState_ProbeFail) {
   base::HistogramTester histogram_tester;
 
@@ -195,8 +200,9 @@
   request.previews_state = content::LITE_PAGE_REDIRECT_ON;
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
@@ -207,7 +213,8 @@
   EXPECT_TRUE(callback_was_empty().value());
 }
 
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest, InterceptRequestRedirect) {
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
+       InterceptRequestRedirect) {
   base::HistogramTester histogram_tester;
   network::ResourceRequest request;
   request.url = kTestUrl;
@@ -221,8 +228,9 @@
 
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
@@ -231,7 +239,7 @@
   EXPECT_TRUE(callback_was_empty().value());
 }
 
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
        InterceptRequestServerOverloaded) {
   base::HistogramTester histogram_tester;
   network::ResourceRequest request;
@@ -247,8 +255,9 @@
 
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
@@ -258,7 +267,7 @@
   EXPECT_TRUE(callback_was_empty().value());
 }
 
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest,
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest,
        InterceptRequestServerNotHandling) {
   base::HistogramTester histogram_tester;
   network::ResourceRequest request;
@@ -273,8 +282,9 @@
 
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
@@ -284,7 +294,7 @@
   EXPECT_TRUE(callback_was_empty().value());
 }
 
-TEST_F(PreviewsLitePageURLLoaderInterceptorTest, NetStackError) {
+TEST_F(PreviewsLitePageRedirectURLLoaderInterceptorTest, NetStackError) {
   base::HistogramTester histogram_tester;
   network::ResourceRequest request;
   request.url = kTestUrl;
@@ -298,8 +308,9 @@
 
   interceptor().MaybeCreateLoader(
       request, nullptr,
-      base::BindOnce(&PreviewsLitePageURLLoaderInterceptorTest::HandlerCallback,
-                     base::Unretained(this)));
+      base::BindOnce(
+          &PreviewsLitePageRedirectURLLoaderInterceptorTest::HandlerCallback,
+          base::Unretained(this)));
 
   histogram_tester.ExpectUniqueSample(
       "Previews.ServerLitePage.URLLoader.Attempted", true, 1);
diff --git a/chrome/browser/previews/previews_service.cc b/chrome/browser/previews/previews_service.cc
index a889585..9ee09b2 100644
--- a/chrome/browser/previews/previews_service.cc
+++ b/chrome/browser/previews/previews_service.cc
@@ -15,7 +15,7 @@
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service.h"
 #include "chrome/browser/optimization_guide/optimization_guide_keyed_service_factory.h"
 #include "chrome/browser/optimization_guide/optimization_guide_top_host_provider.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/browser/previews/previews_offline_helper.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/common/chrome_constants.h"
@@ -167,8 +167,8 @@
     : top_host_provider_(std::make_unique<OptimizationGuideTopHostProvider>(
           browser_context,
           base::DefaultClock::GetInstance())),
-      previews_lite_page_decider_(
-          std::make_unique<PreviewsLitePageDecider>(browser_context)),
+      previews_lite_page_redirect_decider_(
+          std::make_unique<PreviewsLitePageRedirectDecider>(browser_context)),
       previews_offline_helper_(
           std::make_unique<PreviewsOfflineHelper>(browser_context)),
       browser_context_(browser_context),
@@ -234,8 +234,8 @@
 }
 
 void PreviewsService::Shutdown() {
-  if (previews_lite_page_decider_)
-    previews_lite_page_decider_->Shutdown();
+  if (previews_lite_page_redirect_decider_)
+    previews_lite_page_redirect_decider_->Shutdown();
 
   if (previews_offline_helper_)
     previews_offline_helper_->Shutdown();
@@ -246,8 +246,8 @@
   if (previews_ui_service_)
     previews_ui_service_->ClearBlackList(begin_time, end_time);
 
-  if (previews_lite_page_decider_)
-    previews_lite_page_decider_->ClearBlacklist();
+  if (previews_lite_page_redirect_decider_)
+    previews_lite_page_redirect_decider_->ClearBlacklist();
 }
 
 void PreviewsService::ReportObservedRedirectWithDeferAllScriptPreview(
diff --git a/chrome/browser/previews/previews_service.h b/chrome/browser/previews/previews_service.h
index 30c9bc6..c83bef22 100644
--- a/chrome/browser/previews/previews_service.h
+++ b/chrome/browser/previews/previews_service.h
@@ -14,7 +14,7 @@
 #include "base/memory/ref_counted.h"
 #include "base/memory/scoped_refptr.h"
 #include "base/single_thread_task_runner.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "components/blacklist/opt_out_blacklist/opt_out_blacklist_data.h"
 #include "components/keyed_service/core/keyed_service.h"
 #include "components/optimization_guide/top_host_provider.h"
@@ -39,7 +39,7 @@
 namespace previews {
 class PreviewsUIService;
 typedef std::vector<std::unique_ptr<re2::RE2>> RegexpList;
-}
+}  // namespace previews
 
 namespace leveldb_proto {
 class ProtoDatabaseProvider;
@@ -64,12 +64,12 @@
       const scoped_refptr<base::SingleThreadTaskRunner>& ui_task_runner,
       const base::FilePath& profile_path);
 
-  // Allows the |previews_lite_page_decider_| to remove itself from observed
-  // classes.
+  // Allows the |previews_lite_page_redirect_decider_| to remove itself from
+  // observed classes.
   void Shutdown() override;
 
   // Clears the history of the black lists in |previews_ui_service_| and
-  // |previews_lite_page_decider_| between |begin_time| and |end_time|.
+  // |previews_lite_page_redirect_decider_| between |begin_time| and |end_time|.
   void ClearBlackList(base::Time begin_time, base::Time end_time);
 
   // The previews UI thread service.
@@ -78,14 +78,14 @@
   }
 
   // The server lite page preview decider.
-  PreviewsLitePageDecider* previews_lite_page_decider() {
-    return previews_lite_page_decider_.get();
+  PreviewsLitePageRedirectDecider* previews_lite_page_redirect_decider() {
+    return previews_lite_page_redirect_decider_.get();
   }
 
   // The https notification infobar decider.
   PreviewsHTTPSNotificationInfoBarDecider*
   previews_https_notification_infobar_decider() {
-    return previews_lite_page_decider_.get();
+    return previews_lite_page_redirect_decider_.get();
   }
 
   PreviewsOfflineHelper* previews_offline_helper() {
@@ -126,7 +126,8 @@
   std::unique_ptr<previews::PreviewsUIService> previews_ui_service_;
 
   // The server lite page preview decider.
-  std::unique_ptr<PreviewsLitePageDecider> previews_lite_page_decider_;
+  std::unique_ptr<PreviewsLitePageRedirectDecider>
+      previews_lite_page_redirect_decider_;
 
   // The offline previews helper.
   std::unique_ptr<PreviewsOfflineHelper> previews_offline_helper_;
diff --git a/chrome/browser/previews/previews_ui_tab_helper_unittest.cc b/chrome/browser/previews/previews_ui_tab_helper_unittest.cc
index 565fc31..335d19aa 100644
--- a/chrome/browser/previews/previews_ui_tab_helper_unittest.cc
+++ b/chrome/browser/previews/previews_ui_tab_helper_unittest.cc
@@ -18,7 +18,7 @@
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings.h"
 #include "chrome/browser/data_reduction_proxy/data_reduction_proxy_chrome_settings_factory.h"
 #include "chrome/browser/previews/previews_https_notification_infobar_decider.h"
-#include "chrome/browser/previews/previews_lite_page_url_loader_interceptor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_url_loader_interceptor.h"
 #include "chrome/browser/previews/previews_service.h"
 #include "chrome/browser/previews/previews_service_factory.h"
 #include "chrome/test/base/chrome_render_view_host_test_harness.h"
@@ -318,7 +318,8 @@
   EXPECT_FALSE(on_dismiss_value.value());
 }
 
-TEST_F(PreviewsUITabHelperUnitTest, TestReloadWithoutPreviewsLitePageRedirect) {
+TEST_F(PreviewsUITabHelperUnitTest,
+       TestReloadWithoutPreviewsLitePageRedirectRedirect) {
   SimulateWillProcessResponse();
   CallDidFinishNavigation();
   base::RunLoop().RunUntilIdle();
diff --git a/chrome/browser/renderer_host/chrome_navigation_ui_data.cc b/chrome/browser/renderer_host/chrome_navigation_ui_data.cc
index 0b44f45..b2bd3d4 100644
--- a/chrome/browser/renderer_host/chrome_navigation_ui_data.cc
+++ b/chrome/browser/renderer_host/chrome_navigation_ui_data.cc
@@ -6,7 +6,7 @@
 
 #include "chrome/browser/prerender/prerender_contents.h"
 #include "chrome/browser/prerender/prerender_histograms.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "content/public/browser/navigation_handle.h"
 #include "extensions/buildflags/buildflags.h"
 #include "ui/base/window_open_disposition.h"
@@ -44,7 +44,8 @@
             prerender_contents->origin());
   }
   data_reduction_proxy_page_id_ =
-      PreviewsLitePageDecider::GeneratePageIdForWebContents(web_contents);
+      PreviewsLitePageRedirectDecider::GeneratePageIdForWebContents(
+          web_contents);
 }
 
 ChromeNavigationUIData::~ChromeNavigationUIData() {}
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_am.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_am.xtb
index 081918f..f2ed7e4 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_am.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_am.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="am">
 <translation id="1276998909102132017">የማዕከለ-ሥዕላት ምስሎች</translation>
 <translation id="1430915738399379752">አትም</translation>
-<translation id="1462966117743110941">ካሜራዎ አሁን አዲስ ሁነታዎችን የሚደግፍ ሲሆን የእርስዎ ፎቶዎችና ቪዲዮዎች በውርዶች አቃፊዎችዎ ስር የሚገኙ ይሆናሉ።</translation>
 <translation id="1620510694547887537">ካሜራ</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ምንም አልተቀረጸም</translation>
 <translation id="1862930711583847113"><ph name="FILE" />ን ወደ ውጭ መላክ አልተቻለም</translation>
 <translation id="1899697626337024495">የፎቶ ምስል ጥራት</translation>
-<translation id="2008689030244369546">ሙሉ ለሙሉ አዲስ መልክ</translation>
 <translation id="2036868001356139588">የሰዓት ቆጣሪ ቆይታ ጊዜ</translation>
 <translation id="2050339315714019657">በቁመት</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> ገቢር ነው</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">ካሬ</translation>
 <translation id="5775960006311140197">ወደ ውጭ መላክ ሁነታ</translation>
 <translation id="5869546221129391014">ፍርግርግ</translation>
-<translation id="6040143037577758943">ዝጋ</translation>
 <translation id="6073451960410192870">መቅረጽ አቁም</translation>
-<translation id="6165508094623778733">የበለጠ ለመረዳት</translation>
 <translation id="6197807149213783179">የዲበ ውሂብ አስቀምጥ</translation>
 <translation id="6233780560267770709">3 በ 3</translation>
 <translation id="6243827288366940320">ወርቃማ ውድር</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
index 5fed6c4..6b7c15f 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ar.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ar">
 <translation id="1276998909102132017">صور المعرض</translation>
 <translation id="1430915738399379752">طباعة</translation>
-<translation id="1462966117743110941">توفر الكاميرا الآن أوضاعًا جديدة وستظهر صورك وفيديوهاتك ضمن مجلدات "عمليات التنزيل".</translation>
 <translation id="1620510694547887537">الكاميرا</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">لم يتمّ تسجيل أيّ بيانات.</translation>
 <translation id="1862930711583847113">تعذّر تصدير <ph name="FILE" /></translation>
 <translation id="1899697626337024495">درجة دقة الصورة</translation>
-<translation id="2008689030244369546">مظهر جديد تمامًا</translation>
 <translation id="2036868001356139588">مدة المؤقِّت</translation>
 <translation id="2050339315714019657">رأسي</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> نشطة</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">وضع المربّع</translation>
 <translation id="5775960006311140197">الوضع المختصّ</translation>
 <translation id="5869546221129391014">شبكة</translation>
-<translation id="6040143037577758943">إغلاق</translation>
 <translation id="6073451960410192870">إيقاف التسجيل</translation>
-<translation id="6165508094623778733">مزيد من المعلومات</translation>
 <translation id="6197807149213783179">حفظ البيانات الوصفية</translation>
 <translation id="6233780560267770709">3 × 3</translation>
 <translation id="6243827288366940320">النسبة الذهبية</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bg.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bg.xtb
index f994c0e..401c713 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bg.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bg.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="bg">
 <translation id="1276998909102132017">Изображения в галерията</translation>
 <translation id="1430915738399379752">Печат</translation>
-<translation id="1462966117743110941">Камерата вече поддържа нови режими, а снимките и видеоклиповете ви ще бъдат налични в папките за изтеглени файлове.</translation>
 <translation id="1620510694547887537">Камера</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Нищо не е записано</translation>
 <translation id="1862930711583847113">Файлът „<ph name="FILE" />“ не може да се експортира</translation>
 <translation id="1899697626337024495">Разделителна способност за снимките</translation>
-<translation id="2008689030244369546">Съвсем нов облик</translation>
 <translation id="2036868001356139588">Продължителност на таймера</translation>
 <translation id="2050339315714019657">Вертикално</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> е активна</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Квадрат</translation>
 <translation id="5775960006311140197">Експертен режим</translation>
 <translation id="5869546221129391014">Таблица</translation>
-<translation id="6040143037577758943">Затваряне</translation>
 <translation id="6073451960410192870">Спиране на записа</translation>
-<translation id="6165508094623778733">Научете повече</translation>
 <translation id="6197807149213783179">Запазване на метаданните</translation>
 <translation id="6233780560267770709">3 на 3</translation>
 <translation id="6243827288366940320">Златно сечение</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bn.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bn.xtb
index 6592ec15..0688b0f 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bn.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_bn.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="bn">
 <translation id="1276998909102132017">গ্যালারির ছবি</translation>
 <translation id="1430915738399379752">প্রিন্ট</translation>
-<translation id="1462966117743110941">আপনার ক্যামেরায় এখন নতুন মোডগুলি কাজ করে এবং এখন আপনি ডাউনলোড ফোল্ডারে আপনার ফটো ও ভিডিও পাবেন।</translation>
 <translation id="1620510694547887537">ক্যামেরা</translation>
 <translation id="1627744224761163218">৪ x ৪</translation>
 <translation id="1664224225747386870">কিছুই রেকর্ড করা হয়নি</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> এক্সপোর্ট করা যাচ্ছে না</translation>
 <translation id="1899697626337024495">ফটো রেজোলিউশন</translation>
-<translation id="2008689030244369546">একেবারে নতুন দেখতে</translation>
 <translation id="2036868001356139588">টাইমারের সময়কাল</translation>
 <translation id="2050339315714019657">প্রতিকৃতি</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> চালু আছে</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">চৌকো</translation>
 <translation id="5775960006311140197">বিশেষজ্ঞ মোড</translation>
 <translation id="5869546221129391014">গ্রিড</translation>
-<translation id="6040143037577758943">বন্ধ</translation>
 <translation id="6073451960410192870">রেকর্ডিং বন্ধ করুন</translation>
-<translation id="6165508094623778733">আরও জানুন</translation>
 <translation id="6197807149213783179">মেটাডেটা সেভ করুন</translation>
 <translation id="6233780560267770709">৩ x ৩</translation>
 <translation id="6243827288366940320">গোল্ডেন অনুপাত</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ca.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ca.xtb
index d956c33..949b6aa 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ca.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ca.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ca">
 <translation id="1276998909102132017">Imatges de la galeria</translation>
 <translation id="1430915738399379752">Imprimeix</translation>
-<translation id="1462966117743110941">Ara la càmera admet modes nous i les fotos i els vídeos estaran disponibles a les carpetes Baixades.</translation>
 <translation id="1620510694547887537">Càmera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">No s'ha gravat res</translation>
 <translation id="1862930711583847113">No es pot exportar <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolució de la foto</translation>
-<translation id="2008689030244369546">Un aspecte totalment nou</translation>
 <translation id="2036868001356139588">Durada del temporitzador</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> activa</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Quadrat</translation>
 <translation id="5775960006311140197">Mode expert</translation>
 <translation id="5869546221129391014">Quadrícula</translation>
-<translation id="6040143037577758943">Tanca</translation>
 <translation id="6073451960410192870">Atura la gravació</translation>
-<translation id="6165508094623778733">Més informació</translation>
 <translation id="6197807149213783179">Desa les metadades</translation>
 <translation id="6233780560267770709">3 per 3</translation>
 <translation id="6243827288366940320">Proporció àuria</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_cs.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_cs.xtb
index 790b31a..3a54b9d 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_cs.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_cs.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="cs">
 <translation id="1276998909102132017">Obrázky v galerii</translation>
 <translation id="1430915738399379752">Tisk</translation>
-<translation id="1462966117743110941">Fotoaparát teď podporuje nové režimy a fotky a videa budou k dispozici ve složkách se staženými soubory.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">Nic nebylo zaznamenáno</translation>
 <translation id="1862930711583847113">Soubor <ph name="FILE" /> nelze exportovat</translation>
 <translation id="1899697626337024495">Rozlišení fotografií</translation>
-<translation id="2008689030244369546">Úplně nový vzhled</translation>
 <translation id="2036868001356139588">Trvání časovače</translation>
 <translation id="2050339315714019657">Na výšku</translation>
 <translation id="2064538373111010176">Aktivní: <ph name="CAMERA" /></translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Čtverec</translation>
 <translation id="5775960006311140197">Režim pro experty</translation>
 <translation id="5869546221129391014">Mřížka</translation>
-<translation id="6040143037577758943">Zavřít</translation>
 <translation id="6073451960410192870">Zastavit nahrávání</translation>
-<translation id="6165508094623778733">Další informace</translation>
 <translation id="6197807149213783179">Uložit metadata</translation>
 <translation id="6233780560267770709">3 krát 3</translation>
 <translation id="6243827288366940320">Zlatý řez</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
index fc2a276..833172c 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_da.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="da">
 <translation id="1276998909102132017">Galleribilleder</translation>
 <translation id="1430915738399379752">Udskriv</translation>
-<translation id="1462966117743110941">Dit kamera understøtter nu nye tilstande, og dine billeder og videoer kan findes i dine mapper med downloads.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">Der er ingen optagelser</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> kan ikke eksporteres</translation>
 <translation id="1899697626337024495">Billedopløsning</translation>
-<translation id="2008689030244369546">Et helt nyt udseende</translation>
 <translation id="2036868001356139588">Varighed for timer</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> er aktiv</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadrat</translation>
 <translation id="5775960006311140197">Eksperttilstand</translation>
 <translation id="5869546221129391014">Gitter</translation>
-<translation id="6040143037577758943">Luk</translation>
 <translation id="6073451960410192870">Stop optagelse</translation>
-<translation id="6165508094623778733">Flere oplysninger</translation>
 <translation id="6197807149213783179">Gem metadata</translation>
 <translation id="6233780560267770709">3 gange 3</translation>
 <translation id="6243827288366940320">Det gyldne snit</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
index e7cc5d6a..2cc85f6 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_de.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="de">
 <translation id="1276998909102132017">Galeriebilder</translation>
 <translation id="1430915738399379752">Drucken</translation>
-<translation id="1462966117743110941">Ihre Kamera unterstützt jetzt neue Modi und Ihre Fotos und Videos sind in Ihren Downloadordnern verfügbar.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Keine Aufzeichnung</translation>
 <translation id="1862930711583847113">Export von "<ph name="FILE" />" nicht möglich</translation>
 <translation id="1899697626337024495">Fotoauflösung</translation>
-<translation id="2008689030244369546">Ein komplett neues Design</translation>
 <translation id="2036868001356139588">Timerdauer</translation>
 <translation id="2050339315714019657">Hochformat</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktiv</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Quadrat</translation>
 <translation id="5775960006311140197">Einstellungen für Fortgeschrittene</translation>
 <translation id="5869546221129391014">Raster</translation>
-<translation id="6040143037577758943">Schließen</translation>
 <translation id="6073451960410192870">Aufnahme beenden</translation>
-<translation id="6165508094623778733">Weitere Informationen</translation>
 <translation id="6197807149213783179">Metadaten speichern</translation>
 <translation id="6233780560267770709">3 mal 3</translation>
 <translation id="6243827288366940320">Goldener Schnitt</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_el.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_el.xtb
index 353a9a9..d0cfe16c 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_el.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_el.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="el">
 <translation id="1276998909102132017">Εικόνες gallery</translation>
 <translation id="1430915738399379752">Εκτύπωση</translation>
-<translation id="1462966117743110941">Τώρα η κάμερά σας υποστηρίζει νέες λειτουργίες. Επίσης, οι φωτογραφίες και τα βίντεό σας θα διατίθενται στους φακέλους "Λήψεις".</translation>
 <translation id="1620510694547887537">Κάμερα</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Καμία εγγραφή</translation>
 <translation id="1862930711583847113">Δεν είναι δυνατή η εξαγωγή του αρχείου <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Ανάλυση φωτογραφίας</translation>
-<translation id="2008689030244369546">Μια ολοκαίνουργια εμφάνιση</translation>
 <translation id="2036868001356139588">Διάρκεια χρονομέτρου</translation>
 <translation id="2050339315714019657">Κάθετα</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> ενεργή</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Τετράγωνο</translation>
 <translation id="5775960006311140197">Λειτουργία Expert</translation>
 <translation id="5869546221129391014">Πλέγμα</translation>
-<translation id="6040143037577758943">Κλείσιμο</translation>
 <translation id="6073451960410192870">Διακοπή εγγραφής</translation>
-<translation id="6165508094623778733">Μάθετε περισσότερα</translation>
 <translation id="6197807149213783179">Αποθήκευση μεταδεδομένων</translation>
 <translation id="6233780560267770709">3 επί 3</translation>
 <translation id="6243827288366940320">Ιδανικός λόγος διαστάσεων</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_en-GB.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_en-GB.xtb
index 8b74fe0..4e51350 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_en-GB.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_en-GB.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="en-GB">
 <translation id="1276998909102132017">Gallery images</translation>
 <translation id="1430915738399379752">Print</translation>
-<translation id="1462966117743110941">Your camera now supports new modes and your photos and videos will be available under your downloads folders.</translation>
 <translation id="1620510694547887537">Camera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nothing recorded</translation>
 <translation id="1862930711583847113">Unable to export <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Photo resolution</translation>
-<translation id="2008689030244369546">A whole new look</translation>
 <translation id="2036868001356139588">Timer duration</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> active</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Square</translation>
 <translation id="5775960006311140197">Expert mode</translation>
 <translation id="5869546221129391014">Grid</translation>
-<translation id="6040143037577758943">Close</translation>
 <translation id="6073451960410192870">Stop recording</translation>
-<translation id="6165508094623778733">Learn more</translation>
 <translation id="6197807149213783179">Save metadata</translation>
 <translation id="6233780560267770709">3 by 3</translation>
 <translation id="6243827288366940320">Golden ratio</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es-419.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es-419.xtb
index a4f26ca5..a93676f 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es-419.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es-419.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="es-419">
 <translation id="1276998909102132017">Imágenes de la galería</translation>
 <translation id="1430915738399379752">Imprimir</translation>
-<translation id="1462966117743110941">Tu cámara ahora admite nuevos modos, y tus fotos y videos estarán disponibles en tus carpetas de descarga.</translation>
 <translation id="1620510694547887537">Cámara</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">No se grabaron datos</translation>
 <translation id="1862930711583847113">No se puede exportar <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolución de foto</translation>
-<translation id="2008689030244369546">Una apariencia totalmente nueva</translation>
 <translation id="2036868001356139588">Duración del temporizador</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> activa</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Cuadrado</translation>
 <translation id="5775960006311140197">Modo experto</translation>
 <translation id="5869546221129391014">Cuadrícula</translation>
-<translation id="6040143037577758943">Cerrar</translation>
 <translation id="6073451960410192870">Detener grabación</translation>
-<translation id="6165508094623778733">Más información</translation>
 <translation id="6197807149213783179">Guardar metadatos</translation>
 <translation id="6233780560267770709">3 por 3</translation>
 <translation id="6243827288366940320">Proporción áurea</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
index e4b2670..71041b2 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_es.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="es">
 <translation id="1276998909102132017">Imágenes de la galería</translation>
 <translation id="1430915738399379752">Imprimir</translation>
-<translation id="1462966117743110941">Ahora tu cámara admite nuevos modos y tus fotos y vídeos estarán disponibles en tus carpetas de descargas.</translation>
 <translation id="1620510694547887537">Cámara</translation>
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">No se ha grabado nada</translation>
 <translation id="1862930711583847113">No se puede exportar <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolución de las fotos</translation>
-<translation id="2008689030244369546">Un diseño totalmente nuevo</translation>
 <translation id="2036868001356139588">Duración del temporizador</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> activa</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Cuadrado</translation>
 <translation id="5775960006311140197">Modo experto</translation>
 <translation id="5869546221129391014">Cuadrícula</translation>
-<translation id="6040143037577758943">Cerrar</translation>
 <translation id="6073451960410192870">Detener grabación</translation>
-<translation id="6165508094623778733">Más información</translation>
 <translation id="6197807149213783179">Guardar metadatos</translation>
 <translation id="6233780560267770709">Tres por tres</translation>
 <translation id="6243827288366940320">Proporción áurea</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_et.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_et.xtb
index 4979367..3ec200b8 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_et.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_et.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="et">
 <translation id="1276998909102132017">Galerii pildid</translation>
 <translation id="1430915738399379752">Printimine</translation>
-<translation id="1462966117743110941">Teie kaamera toetab nüüd uusi režiime ning teie fotod ja videod on saadaval kaustas Allalaadimised.</translation>
 <translation id="1620510694547887537">Kaamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Midagi pole salvestatud</translation>
 <translation id="1862930711583847113">Faili <ph name="FILE" /> ei saa eksportida</translation>
 <translation id="1899697626337024495">Foto eraldusvõime</translation>
-<translation id="2008689030244369546">Täiesti uus välimus</translation>
 <translation id="2036868001356139588">Taimeri kestus</translation>
 <translation id="2050339315714019657">Vertikaalpaigutus</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> on aktiivne</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Ruut</translation>
 <translation id="5775960006311140197">Ekspertrežiim</translation>
 <translation id="5869546221129391014">Ruudustik</translation>
-<translation id="6040143037577758943">Sulge</translation>
 <translation id="6073451960410192870">Peata salvestamine</translation>
-<translation id="6165508094623778733">Lisateave</translation>
 <translation id="6197807149213783179">Salvesta metaandmed</translation>
 <translation id="6233780560267770709">3 korda 3</translation>
 <translation id="6243827288366940320">Kuldlõige</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
index 90d232f..5cb8911d 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fa.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="fa">
 <translation id="1276998909102132017">تصاویر گالری</translation>
 <translation id="1430915738399379752">چاپ</translation>
-<translation id="1462966117743110941">دوربین شما اکنون از حالت‌های جدید و عکس‌هایتان پشتیبانی می‌کند و ویدیوها در بخش پوشه‌های «بارگیری‌ها» دردسترس خواهند بود.</translation>
 <translation id="1620510694547887537">دوربین</translation>
 <translation id="1627744224761163218">۴ × ۴</translation>
 <translation id="1664224225747386870">چیزی ضبط نشد</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> صادر نشد</translation>
 <translation id="1899697626337024495">وضوح عکس</translation>
-<translation id="2008689030244369546">ظاهری کاملاً جدید</translation>
 <translation id="2036868001356139588">مدت تایمر</translation>
 <translation id="2050339315714019657">عمودی</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> فعال شد</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">مربع</translation>
 <translation id="5775960006311140197">حالت کارشناس</translation>
 <translation id="5869546221129391014">جدولی</translation>
-<translation id="6040143037577758943">بستن</translation>
 <translation id="6073451960410192870">توقف ضبط</translation>
-<translation id="6165508094623778733">بیشتر بدانید</translation>
 <translation id="6197807149213783179">ذخیره فراداده</translation>
 <translation id="6233780560267770709">۳ در ۳</translation>
 <translation id="6243827288366940320">نسبت طلایی</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fi.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fi.xtb
index e744edbc..ad50453 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fi.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fi.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="fi">
 <translation id="1276998909102132017">Gallerian kuvat</translation>
 <translation id="1430915738399379752">Tulosta</translation>
-<translation id="1462966117743110941">Nyt kamerasi tukee uusia kuvaustiloja ja löydät kuvasi ja videosi Lataukset-kansioista.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">Mitään ei kuvattu</translation>
 <translation id="1862930711583847113">Vienti epäonnistui: <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Kuvaresoluutio</translation>
-<translation id="2008689030244369546">Uudenlainen ilme</translation>
 <translation id="2036868001356139588">Ajastimen kesto</translation>
 <translation id="2050339315714019657">Pystysuunta</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> on aktiivinen.</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Neliö</translation>
 <translation id="5775960006311140197">Asiantuntija-tila</translation>
 <translation id="5869546221129391014">Ruudukko</translation>
-<translation id="6040143037577758943">Sulje</translation>
 <translation id="6073451960410192870">Lopeta tallennus</translation>
-<translation id="6165508094623778733">Lisätietoja</translation>
 <translation id="6197807149213783179">Tallenna sisällönkuvaustiedot</translation>
 <translation id="6233780560267770709">3x3</translation>
 <translation id="6243827288366940320">Kultainen leikkaus</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fil.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fil.xtb
index 6da0425..f276bff 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fil.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="fil">
 <translation id="1276998909102132017">Mga larawan sa gallery</translation>
 <translation id="1430915738399379752">I-print</translation>
-<translation id="1462966117743110941">Sinusuportahan na ngayon ng iyong camera ang mga bagong mode at magiging available ang mga larawan at video mo sa ilalim ng iyong mga folder na Mga Download.</translation>
 <translation id="1620510694547887537">Camera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Walang na-record</translation>
 <translation id="1862930711583847113">Hindi ma-export ang <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolution ng larawan</translation>
-<translation id="2008689030244369546">Isang bagong hitsura</translation>
 <translation id="2036868001356139588">Tagal ng timer</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2064538373111010176">Aktibo ang <ph name="CAMERA" /></translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Parisukat</translation>
 <translation id="5775960006311140197">Expert mode</translation>
 <translation id="5869546221129391014">Grid</translation>
-<translation id="6040143037577758943">Isara</translation>
 <translation id="6073451960410192870">Ihinto ang pag-record</translation>
-<translation id="6165508094623778733">Matuto pa</translation>
 <translation id="6197807149213783179">I-save ang metadata</translation>
 <translation id="6233780560267770709">3 by 3</translation>
 <translation id="6243827288366940320">Golden ratio</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fr.xtb
index 9c633ec..f84761c 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_fr.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="fr">
 <translation id="1276998909102132017">Images de la galerie</translation>
 <translation id="1430915738399379752">Imprimer</translation>
-<translation id="1462966117743110941">Votre caméra est à présent compatible avec les nouveaux modes, et vos photos et vidéos seront disponibles dans les dossiers Téléchargements.</translation>
 <translation id="1620510694547887537">Appareil photo</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Aucune donnée enregistrée</translation>
 <translation id="1862930711583847113">Impossible d'exporter <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Résolution photo</translation>
-<translation id="2008689030244369546">Une apparence entièrement repensée</translation>
 <translation id="2036868001356139588">Durée du minuteur</translation>
 <translation id="2050339315714019657">Portrait</translation>
 <translation id="2064538373111010176">Option <ph name="CAMERA" /> activée</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Carré</translation>
 <translation id="5775960006311140197">Mode Expert</translation>
 <translation id="5869546221129391014">Grille</translation>
-<translation id="6040143037577758943">Fermer</translation>
 <translation id="6073451960410192870">Arrêter l'enregistrement</translation>
-<translation id="6165508094623778733">En savoir plus</translation>
 <translation id="6197807149213783179">Enregistrer les métadonnées</translation>
 <translation id="6233780560267770709">3 par 3</translation>
 <translation id="6243827288366940320">Ratio optimal</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
index 516697f..59770e4 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_gu.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="gu">
 <translation id="1276998909102132017">ગૅલેરી છબીઓ</translation>
 <translation id="1430915738399379752">પ્રિન્ટ</translation>
-<translation id="1462966117743110941">તમારો કૅમેરા હવે નવા મોડને સમર્થન આપે છે અને તમારા ફોટા અને વીડિયો તમારા ડાઉનલોડ ફોલ્ડર હેઠળ ઉપલબ્ધ થશે.</translation>
 <translation id="1620510694547887537">કૅમેરો</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">કંઈ રેકોર્ડ થયું નથી</translation>
 <translation id="1862930711583847113"><ph name="FILE" />ની નિકાસ કરવામાં નિષ્ફળ રહ્યા</translation>
 <translation id="1899697626337024495">ફોટો રિઝોલ્યુશન</translation>
-<translation id="2008689030244369546">એકદમ નવો દેખાવ</translation>
 <translation id="2036868001356139588">ટાઇમર અવધિ</translation>
 <translation id="2050339315714019657">પોર્ટ્રેટ</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> સક્રિય</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">ચોરસ</translation>
 <translation id="5775960006311140197">નિષ્ણાત મોડ</translation>
 <translation id="5869546221129391014">ગ્રિડ</translation>
-<translation id="6040143037577758943">બંધ કરો</translation>
 <translation id="6073451960410192870">રેકોર્ડિંગ બંધ કરો</translation>
-<translation id="6165508094623778733">વધુ જાણો</translation>
 <translation id="6197807149213783179">મેટાડેટા સાચવો</translation>
 <translation id="6233780560267770709">3 બાય 3</translation>
 <translation id="6243827288366940320">ગોલ્ડન રેશિયો</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hi.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hi.xtb
index b15bce9..7ec6a3d 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hi.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hi.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="hi">
 <translation id="1276998909102132017">गैलरी की इमेज</translation>
 <translation id="1430915738399379752">प्रिंट करें</translation>
-<translation id="1462966117743110941">आपके कैमरे पर अब नए मोड काम करते हैं. साथ ही, आपकी फ़ोटो और वीडियो 'डाउनलोड' फ़ोल्डर में दिखाई देंगे.</translation>
 <translation id="1620510694547887537">कैमरा</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">कुछ भी रिकॉर्ड नहीं हुआ</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> को एक्सपोर्ट नहीं किया जा सका</translation>
 <translation id="1899697626337024495">फ़ोटो रिज़ॉल्यूशन</translation>
-<translation id="2008689030244369546">बिल्कुल नया रूप</translation>
 <translation id="2036868001356139588">टाइमर का कुल समय</translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> चालू है</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">वर्ग</translation>
 <translation id="5775960006311140197">एक्सपर्ट मोड</translation>
 <translation id="5869546221129391014">ग्रिड</translation>
-<translation id="6040143037577758943">बंद करें</translation>
 <translation id="6073451960410192870">रिकॉर्डिंग बंद करें</translation>
-<translation id="6165508094623778733">ज़्यादा जानें</translation>
 <translation id="6197807149213783179">मेटाडेटा सेव करें</translation>
 <translation id="6233780560267770709">3 गुणा 3</translation>
 <translation id="6243827288366940320">सबसे अच्छा अनुपात</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hr.xtb
index 02e2f32..ad8cfc4 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hr.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="hr">
 <translation id="1276998909102132017">Slike iz galerije</translation>
 <translation id="1430915738399379752">Ispis</translation>
-<translation id="1462966117743110941">Vaš fotoaparat sada podržava nove načine rada te će fotografije i videozapisi biti dostupni u mapama Preuzimanja.</translation>
 <translation id="1620510694547887537">Fotoaparat</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nije snimljeno ništa</translation>
 <translation id="1862930711583847113">Izvoz datoteke <ph name="FILE" /> nije moguć</translation>
 <translation id="1899697626337024495">Razlučivost fotografije</translation>
-<translation id="2008689030244369546">Potpuno novi izgled</translation>
 <translation id="2036868001356139588">Trajanje odbrojavanja</translation>
 <translation id="2050339315714019657">Portret</translation>
 <translation id="2064538373111010176">Aktivno: <ph name="CAMERA" /></translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadrat</translation>
 <translation id="5775960006311140197">Stručni način rada</translation>
 <translation id="5869546221129391014">Rešetka</translation>
-<translation id="6040143037577758943">Zatvori</translation>
 <translation id="6073451960410192870">Zaustavi snimanje</translation>
-<translation id="6165508094623778733">Saznajte više</translation>
 <translation id="6197807149213783179">Spremi metapodatke</translation>
 <translation id="6233780560267770709">Tri puta tri</translation>
 <translation id="6243827288366940320">Zlatni rez</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hu.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hu.xtb
index 1228791..20b3b75 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hu.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_hu.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="hu">
 <translation id="1276998909102132017">Galériaképek</translation>
 <translation id="1430915738399379752">Nyomtatás</translation>
-<translation id="1462966117743110941">A kamera már új módokat is támogat, a fotók és a videók pedig a Letöltések mappában lesznek hozzáférhetők.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">A kamera semmit sem rögzített</translation>
 <translation id="1862930711583847113">Nem lehet exportálni: <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Fotó felbontása</translation>
-<translation id="2008689030244369546">Teljesen új külső</translation>
 <translation id="2036868001356139588">Időzítés hossza</translation>
 <translation id="2050339315714019657">Álló</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktív</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Négyzet</translation>
 <translation id="5775960006311140197">Szakértői mód</translation>
 <translation id="5869546221129391014">Rács</translation>
-<translation id="6040143037577758943">Bezárás</translation>
 <translation id="6073451960410192870">Felvétel leállítása</translation>
-<translation id="6165508094623778733">További információ</translation>
 <translation id="6197807149213783179">Metaadatok mentése</translation>
 <translation id="6233780560267770709">Háromszor hármas</translation>
 <translation id="6243827288366940320">Aranymetszés</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
index ad98c3d..a2512b0 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_id.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="id">
 <translation id="1276998909102132017">Foto galeri</translation>
 <translation id="1430915738399379752">Cetak</translation>
-<translation id="1462966117743110941">Kamera Anda sekarang mendukung mode baru, dan foto serta video Anda akan tersedia di folder Download.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Tidak ada yang direkam</translation>
 <translation id="1862930711583847113">Tidak dapat mengekspor <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolusi foto</translation>
-<translation id="2008689030244369546">Tampilan terbaru</translation>
 <translation id="2036868001356139588">Durasi timer</translation>
 <translation id="2050339315714019657">Potret</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktif</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Persegi</translation>
 <translation id="5775960006311140197">Mode pakar</translation>
 <translation id="5869546221129391014">Kisi</translation>
-<translation id="6040143037577758943">Tutup</translation>
 <translation id="6073451960410192870">Berhenti merekam</translation>
-<translation id="6165508094623778733">Pelajari lebih lanjut</translation>
 <translation id="6197807149213783179">Simpan metadata</translation>
 <translation id="6233780560267770709">3 kali 3</translation>
 <translation id="6243827288366940320">Rasio emas</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_it.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_it.xtb
index 25b9af0..900b4ce 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_it.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_it.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="it">
 <translation id="1276998909102132017">Immagini della galleria</translation>
 <translation id="1430915738399379752">Stampa</translation>
-<translation id="1462966117743110941">La tua fotocamera ora supporta nuove modalità; le tue foto e i tuoi video saranno disponibili nella cartella Download.</translation>
 <translation id="1620510694547887537">Videocamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nessun dato registrato</translation>
 <translation id="1862930711583847113">Impossibile esportare <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Risoluzione foto</translation>
-<translation id="2008689030244369546">Un look totalmente nuovo</translation>
 <translation id="2036868001356139588">Durata del timer</translation>
 <translation id="2050339315714019657">Verticale</translation>
 <translation id="2064538373111010176">Fotocamera <ph name="CAMERA" /> attiva</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Quadrato</translation>
 <translation id="5775960006311140197">Modalità Esperto</translation>
 <translation id="5869546221129391014">Griglia</translation>
-<translation id="6040143037577758943">Chiudi</translation>
 <translation id="6073451960410192870">Interrompi registrazione</translation>
-<translation id="6165508094623778733">Ulteriori informazioni</translation>
 <translation id="6197807149213783179">Salva metadati</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">Sezione aurea</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_iw.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_iw.xtb
index fa46866..3cdbc362 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_iw.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_iw.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="iw">
 <translation id="1276998909102132017">תמונות מהגלריה</translation>
 <translation id="1430915738399379752">הדפסה</translation>
-<translation id="1462966117743110941">המצלמה תומכת עכשיו במצבים חדשים, והתמונות והסרטונים שלך יהיו זמינים בתיקיה 'הורדות'.</translation>
 <translation id="1620510694547887537">מצלמה</translation>
 <translation id="1627744224761163218">‎4 x 4</translation>
 <translation id="1664224225747386870">לא צולם סרטון</translation>
 <translation id="1862930711583847113">לא ניתן לייצא את <ph name="FILE" /></translation>
 <translation id="1899697626337024495">רזולוציית תמונה</translation>
-<translation id="2008689030244369546">מראה חדש</translation>
 <translation id="2036868001356139588">משך זמן בטיימר</translation>
 <translation id="2050339315714019657">לאורך</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> פעילה</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">ריבוע</translation>
 <translation id="5775960006311140197">מצב מתקדם</translation>
 <translation id="5869546221129391014">רשת</translation>
-<translation id="6040143037577758943">סגור</translation>
 <translation id="6073451960410192870">הפסקת צילום הסרטון</translation>
-<translation id="6165508094623778733">למידע נוסף</translation>
 <translation id="6197807149213783179">שמירת מטא-נתונים</translation>
 <translation id="6233780560267770709">3 על 3</translation>
 <translation id="6243827288366940320">יחס הזהב</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
index c8ac27f..964c367 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ja.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ja">
 <translation id="1276998909102132017">ギャラリー画像</translation>
 <translation id="1430915738399379752">印刷</translation>
-<translation id="1462966117743110941">お使いのカメラで新しいモードがサポートされるようになりました。写真や動画をダウンロード フォルダで使用できます。</translation>
 <translation id="1620510694547887537">カメラ</translation>
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">何も記録されていません</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> をエクスポートできません</translation>
 <translation id="1899697626337024495">写真の解像度</translation>
-<translation id="2008689030244369546">一新されたデザイン</translation>
 <translation id="2036868001356139588">タイマーの時間</translation>
 <translation id="2050339315714019657">縦</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" />(有効)</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">スクエア</translation>
 <translation id="5775960006311140197">エキスパート モード</translation>
 <translation id="5869546221129391014">グリッド</translation>
-<translation id="6040143037577758943">閉じる</translation>
 <translation id="6073451960410192870">撮影を停止</translation>
-<translation id="6165508094623778733">詳細</translation>
 <translation id="6197807149213783179">メタデータを保存</translation>
 <translation id="6233780560267770709">3 かける 3</translation>
 <translation id="6243827288366940320">黄金比</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
index 5acaeb9..9ef8202 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_kn.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="kn">
 <translation id="1276998909102132017">ಗ್ಯಾಲರಿ ಚಿತ್ರಗಳು</translation>
 <translation id="1430915738399379752">ಮುದ್ರಿಸು</translation>
-<translation id="1462966117743110941">ನಿಮ್ಮ ಕ್ಯಾಮರಾ ಇದೀಗ ಹೊಸ ಮೋಡ್‌ಗಳನ್ನು ಬೆಂಬಲಿಸುತ್ತದೆ ಮತ್ತು ನಿಮ್ಮ ಫೋಟೋಗಳು ಹಾಗೂ ವೀಡಿಯೊಗಳು ಇದೀಗ ನಿಮ್ಮ "ಡೌನ್‌ಲೋಡ್‌ಗಳು" ಫೋಲ್ಡರ್‌ಗಳ ಅಡಿಯಲ್ಲಿ ಲಭ್ಯವಿರುತ್ತವೆ.</translation>
 <translation id="1620510694547887537">ಕ್ಯಾಮರಾ</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ಏನನ್ನೂ ರೆಕಾರ್ಡ್ ಮಾಡಲಾಗಿಲ್ಲ</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> ರಫ್ತು ಮಾಡಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="1899697626337024495">ಫೋಟೋ ರೆಸಲ್ಯೂಷನ್</translation>
-<translation id="2008689030244369546">ಸಂಪೂರ್ಣ ಹೊಸ ನೋಟ</translation>
 <translation id="2036868001356139588">ಟೈಮರ್ ಅವಧಿ</translation>
 <translation id="2050339315714019657">ಪೋರ್ಟ್ರೇಟ್</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> ಸಕ್ರಿಯ</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">ಚೌಕ</translation>
 <translation id="5775960006311140197">ತಜ್ಞ ಮೋಡ್</translation>
 <translation id="5869546221129391014">ಗ್ರಿಡ್</translation>
-<translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6073451960410192870">ರೆಕಾರ್ಡಿಂಗ್ ನಿಲ್ಲಿಸಿ</translation>
-<translation id="6165508094623778733">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
 <translation id="6197807149213783179">ಮೆಟಾಡೇಟಾ ಉಳಿಸಿ</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">ಗೋಲ್ಡನ್ ಅನುಪಾತ</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
index 1bc8507d..25c5fe3 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ko.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ko">
 <translation id="1276998909102132017">갤러리 이미지</translation>
 <translation id="1430915738399379752">인쇄</translation>
-<translation id="1462966117743110941">이제 카메라에서 새로운 모드를 지원합니다. 또한 사진 및 동영상을 다운로드 폴더에서 사용할 수 있습니다.</translation>
 <translation id="1620510694547887537">카메라</translation>
 <translation id="1627744224761163218">4x4</translation>
 <translation id="1664224225747386870">녹화된 동영상이 없습니다.</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> 파일을 내보낼 수 없습니다.</translation>
 <translation id="1899697626337024495">사진 해상도</translation>
-<translation id="2008689030244369546">새로워진 디자인</translation>
 <translation id="2036868001356139588">타이머 시간</translation>
 <translation id="2050339315714019657">세로 방향</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> 사용 중</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">정사각형</translation>
 <translation id="5775960006311140197">전문가 모드</translation>
 <translation id="5869546221129391014">격자</translation>
-<translation id="6040143037577758943">닫기</translation>
 <translation id="6073451960410192870">녹화 중지</translation>
-<translation id="6165508094623778733">자세히 알아보기</translation>
 <translation id="6197807149213783179">메타데이터 저장</translation>
 <translation id="6233780560267770709">3x3</translation>
 <translation id="6243827288366940320">황금 비율</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lt.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lt.xtb
index 375676e..0d443b2 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lt.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lt.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="lt">
 <translation id="1276998909102132017">Galerijos vaizdai</translation>
 <translation id="1430915738399379752">Spausdinti</translation>
-<translation id="1462966117743110941">Jūsų fotoaparatas dabar palaiko naujus režimus, o jūsų nuotraukos ir vaizdo įrašai bus pasiekiami atsisiųstų failų aplankuose.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nieko neįrašyta</translation>
 <translation id="1862930711583847113">Nepavyko eksportuoti „<ph name="FILE" />“</translation>
 <translation id="1899697626337024495">Nuotraukos skyra</translation>
-<translation id="2008689030244369546">Visiškai nauja išvaizda</translation>
 <translation id="2036868001356139588">Laikmačio trukmė</translation>
 <translation id="2050339315714019657">Stačias</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktyvus</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadratas</translation>
 <translation id="5775960006311140197">Eksperto režimas</translation>
 <translation id="5869546221129391014">Tinklelis</translation>
-<translation id="6040143037577758943">Uždaryti</translation>
 <translation id="6073451960410192870">Sustabdyti įrašymą</translation>
-<translation id="6165508094623778733">Sužinokite daugiau</translation>
 <translation id="6197807149213783179">Išsaugoti metaduomenis</translation>
 <translation id="6233780560267770709">3 iš 3</translation>
 <translation id="6243827288366940320">Geriausias įvertinimas</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lv.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lv.xtb
index 9e820b3..f770f228 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lv.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_lv.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="lv">
 <translation id="1276998909102132017">Galerijas attēli</translation>
 <translation id="1430915738399379752">Drukāt</translation>
-<translation id="1462966117743110941">Tagad jūsu kamerā tiek atbalstīti jauni režīmi, un jūsu fotoattēli un videoklipi būs pieejami lejupielādes mapēs.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nekas nav ierakstīts</translation>
 <translation id="1862930711583847113">Nevar eksportēt failu <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Fotoattēlu izšķirtspēja</translation>
-<translation id="2008689030244369546">Jauns izskats</translation>
 <translation id="2036868001356139588">Taimera ilgums</translation>
 <translation id="2050339315714019657">Portrets</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktīva</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadrāts</translation>
 <translation id="5775960006311140197">Eksperta režīms</translation>
 <translation id="5869546221129391014">Režģis</translation>
-<translation id="6040143037577758943">Aizvērt</translation>
 <translation id="6073451960410192870">Pārtraukt ierakstīšanu</translation>
-<translation id="6165508094623778733">Uzziniet vairāk</translation>
 <translation id="6197807149213783179">Saglabāt metadatus</translation>
 <translation id="6233780560267770709">3 pa 3</translation>
 <translation id="6243827288366940320">Zelta griezums</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ml.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ml.xtb
index 4efa969..b775df6 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ml.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ml.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ml">
 <translation id="1276998909102132017">ഗാലറി ചിത്രങ്ങൾ</translation>
 <translation id="1430915738399379752">അച്ചടിക്കുക</translation>
-<translation id="1462966117743110941">നിങ്ങളുടെ ക്യാമറ ഇപ്പോൾ പുതിയ മോഡുകൾ പിന്തുണയ്‌ക്കുന്നു, നിങ്ങളുടെ ഫോട്ടോകളും വീഡിയോകളും ഡൗൺലോഡ് ഫോൾഡറിന് കീഴിൽ ലഭ്യമാവും.</translation>
 <translation id="1620510694547887537">ക്യാമറ</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ഒന്നും റെക്കോർഡ് ചെയ്‌തില്ല</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> എക്‌സ്‌പോർട്ട് ചെയ്യാനായില്ല</translation>
 <translation id="1899697626337024495">ഫോട്ടോ റെസല്യൂഷൻ</translation>
-<translation id="2008689030244369546">മൊത്തത്തിൽ പുതിയ രൂപം</translation>
 <translation id="2036868001356139588">ടൈമർ ദൈർഘ്യം</translation>
 <translation id="2050339315714019657">പോർട്രെയ്റ്റ്</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> സജീവമാണ്</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">ചതുരം</translation>
 <translation id="5775960006311140197">വിദഗ്‌ദ്ധ മോഡ്</translation>
 <translation id="5869546221129391014">ഗ്രിഡ്</translation>
-<translation id="6040143037577758943">അടയ്ക്കുക</translation>
 <translation id="6073451960410192870">റെക്കോർഡിംഗ് നിർത്തുക</translation>
-<translation id="6165508094623778733">കൂടുതലറിയുക</translation>
 <translation id="6197807149213783179">മെറ്റാഡാറ്റ സംരക്ഷിക്കുക</translation>
 <translation id="6233780560267770709">3 ബൈ 3</translation>
 <translation id="6243827288366940320">ഗോൾഡൻ റേഷ്യോ</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_mr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_mr.xtb
index 5e16299e..4ec6ccd 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_mr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_mr.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="mr">
 <translation id="1276998909102132017">गॅलरी इमेज</translation>
 <translation id="1430915738399379752">प्रिंट</translation>
-<translation id="1462966117743110941">तुमचा कॅमेरा आता नवीन मोडना सपोर्ट करतो आणि तुमचे फोटो व व्हिडिओ तुमच्या डाउनलोड फोल्डर अंतर्गत उपलब्ध असतील.</translation>
 <translation id="1620510694547887537">कॅमेरा</translation>
 <translation id="1627744224761163218">४ x ४</translation>
 <translation id="1664224225747386870">काहीही रेकॉर्ड केले गेले नाही</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> एक्सपोर्ट करता आली नाही</translation>
 <translation id="1899697626337024495">फोटो रिझोल्युशन</translation>
-<translation id="2008689030244369546">संपूर्ण नवीन रूप</translation>
 <translation id="2036868001356139588">टायमरचा कालावधी</translation>
 <translation id="2050339315714019657">पोर्ट्रेट</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> अ‍ॅक्टिव्ह</translation>
@@ -42,9 +40,7 @@
 <translation id="5152121255775685072">गॅलरीवर जा</translation>
 <translation id="5671277269877808209">चौरस</translation>
 <translation id="5869546221129391014">ग्रिड</translation>
-<translation id="6040143037577758943">बंद करा</translation>
 <translation id="6073451960410192870">रेकॉर्डिंग थांबवा</translation>
-<translation id="6165508094623778733">अधिक जाणून घ्या</translation>
 <translation id="6233780560267770709">३ बाय ३</translation>
 <translation id="6243827288366940320">सोनेरी गुणोत्‍तर</translation>
 <translation id="6248749904681914629">बाह्य कॅमेरा</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
index 2a3e305..40eb361 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ms.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ms">
 <translation id="1276998909102132017">Imej galeri</translation>
 <translation id="1430915738399379752">Cetak</translation>
-<translation id="1462966117743110941">Kini kamera anda menyokong mod baharu. Foto dan video anda akan tersedia dalam folder Muat Turun.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Tiada apa-apa yang dirakamkan</translation>
 <translation id="1862930711583847113">Tidak dapat mengeksport <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Peleraian foto</translation>
-<translation id="2008689030244369546">Rupa serba baharu</translation>
 <translation id="2036868001356139588">Tempoh pemasa</translation>
 <translation id="2050339315714019657">Potret</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktif</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Segi empat sama</translation>
 <translation id="5775960006311140197">Mod pakar</translation>
 <translation id="5869546221129391014">Grid</translation>
-<translation id="6040143037577758943">Tutup</translation>
 <translation id="6073451960410192870">Hentikan rakaman</translation>
-<translation id="6165508094623778733">Ketahui lebih lanjut</translation>
 <translation id="6197807149213783179">Simpan metadata</translation>
 <translation id="6233780560267770709">3 kali 3</translation>
 <translation id="6243827288366940320">Nisbah keemasan</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
index 587bad0..f41c36f 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_nl.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="nl">
 <translation id="1276998909102132017">Galerij-afbeeldingen</translation>
 <translation id="1430915738399379752">Afdrukken</translation>
-<translation id="1462966117743110941">Je camera ondersteunt nu nieuwe modi en je foto's en video's zijn beschikbaar in de map Downloads.</translation>
 <translation id="1620510694547887537">Camera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Niets opgenomen</translation>
 <translation id="1862930711583847113">Kan <ph name="FILE" /> niet exporteren</translation>
 <translation id="1899697626337024495">Fotoresolutie</translation>
-<translation id="2008689030244369546">Een geheel nieuw uiterlijk</translation>
 <translation id="2036868001356139588">Timerduur</translation>
 <translation id="2050339315714019657">Staand</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> actief</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Vierkant</translation>
 <translation id="5775960006311140197">Expertmodus</translation>
 <translation id="5869546221129391014">Raster</translation>
-<translation id="6040143037577758943">Sluiten</translation>
 <translation id="6073451960410192870">Opname stoppen</translation>
-<translation id="6165508094623778733">Meer informatie</translation>
 <translation id="6197807149213783179">Metadata opslaan</translation>
 <translation id="6233780560267770709">3 bij 3</translation>
 <translation id="6243827288366940320">Gulden snede</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_no.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_no.xtb
index c9a87ea..a1330b31 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_no.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_no.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="no">
 <translation id="1276998909102132017">Galleribilder</translation>
 <translation id="1430915738399379752">Skriv ut</translation>
-<translation id="1462966117743110941">Kameraet støtter nå nye moduser, og bilder og videoer blir tilgjengelige i Nedlastinger-mappene.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Ingenting er tatt opp</translation>
 <translation id="1862930711583847113">Kan ikke eksportere <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Bildeoppløsning</translation>
-<translation id="2008689030244369546">Et helt nytt utseende</translation>
 <translation id="2036868001356139588">Nedtellervarighet</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> er aktivt</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadrat</translation>
 <translation id="5775960006311140197">Ekspertmodus</translation>
 <translation id="5869546221129391014">Rutenett</translation>
-<translation id="6040143037577758943">Lukk</translation>
 <translation id="6073451960410192870">Stopp opptaket</translation>
-<translation id="6165508094623778733">Finn ut mer</translation>
 <translation id="6197807149213783179">Lagre metadata</translation>
 <translation id="6233780560267770709">3 ganger 3</translation>
 <translation id="6243827288366940320">Det gylne snitt</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pl.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pl.xtb
index 07bdeb5..353a8fc 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pl.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pl.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="pl">
 <translation id="1276998909102132017">Zdjęcia z galerii</translation>
 <translation id="1430915738399379752">Drukuj</translation>
-<translation id="1462966117743110941">Twój aparat obsługuje teraz nowe tryby, a zdjęcia i filmy znajdziesz w folderze Pobrane.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nic nie zostało nagrane</translation>
 <translation id="1862930711583847113">Nie udało się wyeksportować pliku <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Rozdzielczość zdjęcia</translation>
-<translation id="2008689030244369546">Zupełnie nowy wygląd</translation>
 <translation id="2036868001356139588">Czas samowyzwalacza</translation>
 <translation id="2050339315714019657">Pionowo</translation>
 <translation id="2064538373111010176">Aparat <ph name="CAMERA" /> jest aktywny</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kwadrat</translation>
 <translation id="5775960006311140197">Tryb eksperta</translation>
 <translation id="5869546221129391014">Siatka</translation>
-<translation id="6040143037577758943">Zamknij</translation>
 <translation id="6073451960410192870">Zatrzymaj nagrywanie</translation>
-<translation id="6165508094623778733">Więcej informacji</translation>
 <translation id="6197807149213783179">Zapisz metadane</translation>
 <translation id="6233780560267770709">3 na 3</translation>
 <translation id="6243827288366940320">Złoty podział</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
index 0e602f66..1e03f949 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-BR.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="pt-BR">
 <translation id="1276998909102132017">Imagens da galeria</translation>
 <translation id="1430915738399379752">Imprimir</translation>
-<translation id="1462966117743110941">A câmera agora é compatível com novos modos, e as fotos e os vídeos estarão disponíveis nas suas pastas de downloads.</translation>
 <translation id="1620510694547887537">Câmera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nada gravado</translation>
 <translation id="1862930711583847113">Não foi possível exportar <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Resolução da foto</translation>
-<translation id="2008689030244369546">Um visual totalmente novo</translation>
 <translation id="2036868001356139588">Duração do timer</translation>
 <translation id="2050339315714019657">Retrato</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> ativa</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Quadrado</translation>
 <translation id="5775960006311140197">Modo Especialista</translation>
 <translation id="5869546221129391014">Grade</translation>
-<translation id="6040143037577758943">Fechar</translation>
 <translation id="6073451960410192870">Parar de gravar</translation>
-<translation id="6165508094623778733">Saiba mais</translation>
 <translation id="6197807149213783179">Salvar metadados</translation>
 <translation id="6233780560267770709">3 por 3</translation>
 <translation id="6243827288366940320">Número de ouro</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-PT.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-PT.xtb
index 08b90405..4d2d973 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-PT.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_pt-PT.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="pt-PT">
 <translation id="1276998909102132017">Imagens da galeria</translation>
 <translation id="1430915738399379752">Imprimir</translation>
-<translation id="1462966117743110941">A sua câmara suporta agora novos modos e as suas fotos e vídeos estão disponíveis nas pastas Transferências.</translation>
 <translation id="1620510694547887537">Câmara</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nada foi gravado.</translation>
 <translation id="1862930711583847113">Não foi possível exportar o ficheiro <ph name="FILE" />.</translation>
 <translation id="1899697626337024495">Resolução da foto</translation>
-<translation id="2008689030244369546">Um aspeto totalmente novo</translation>
 <translation id="2036868001356139588">Duração do temporizador</translation>
 <translation id="2050339315714019657">Vertical</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> ativa</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Quadrado</translation>
 <translation id="5775960006311140197">Modo Especialista</translation>
 <translation id="5869546221129391014">Grelha</translation>
-<translation id="6040143037577758943">Fechar</translation>
 <translation id="6073451960410192870">Parar gravação</translation>
-<translation id="6165508094623778733">Saiba mais</translation>
 <translation id="6197807149213783179">Guardar metadados</translation>
 <translation id="6233780560267770709">3 por 3</translation>
 <translation id="6243827288366940320">Divina proporção</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ro.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ro.xtb
index 51a5430..157f9a4d 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ro.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ro.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ro">
 <translation id="1276998909102132017">Imagini din galerie</translation>
 <translation id="1430915738399379752">Printează</translation>
-<translation id="1462966117743110941">Camera ta acceptă acum moduri noi, iar fotografiile și videoclipurile tale sunt disponibile în dosarele Descărcări.</translation>
 <translation id="1620510694547887537">Cameră</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nu s-a înregistrat nimic</translation>
 <translation id="1862930711583847113">Fișierul <ph name="FILE" /> nu poate fi exportat</translation>
 <translation id="1899697626337024495">Rezoluție foto</translation>
-<translation id="2008689030244369546">Un aspect nou-nouț</translation>
 <translation id="2036868001356139588">Durata temporizatorului</translation>
 <translation id="2050339315714019657">Portret</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> s-a activat</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Pătrat</translation>
 <translation id="5775960006311140197">Modul expert</translation>
 <translation id="5869546221129391014">Grilă</translation>
-<translation id="6040143037577758943">Închide</translation>
 <translation id="6073451960410192870">Oprește înregistrarea</translation>
-<translation id="6165508094623778733">Află mai multe</translation>
 <translation id="6197807149213783179">Salvează metadatele</translation>
 <translation id="6233780560267770709">3 pe 3</translation>
 <translation id="6243827288366940320">Raportul de aur</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
index c967d290..8d95ec7 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ru.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ru">
 <translation id="1276998909102132017">Изображения в галерее</translation>
 <translation id="1430915738399379752">Печать</translation>
-<translation id="1462966117743110941">Мы добавили в приложение камеры несколько новых режимов. Ваши фото и видео будут доступны в папках со скачанными файлами.</translation>
 <translation id="1620510694547887537">Камера</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Ничего не записано.</translation>
 <translation id="1862930711583847113">Не удалось экспортировать файл <ph name="FILE" />.</translation>
 <translation id="1899697626337024495">Разрешение фото</translation>
-<translation id="2008689030244369546">Новый дизайн</translation>
 <translation id="2036868001356139588">Длительность таймера</translation>
 <translation id="2050339315714019657">Книжная</translation>
 <translation id="2064538373111010176">Камера <ph name="CAMERA" /> активна</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Квадрат</translation>
 <translation id="5775960006311140197">Режим эксперта</translation>
 <translation id="5869546221129391014">Сетка</translation>
-<translation id="6040143037577758943">Закрыть</translation>
 <translation id="6073451960410192870">Остановить запись</translation>
-<translation id="6165508094623778733">Подробнее...</translation>
 <translation id="6197807149213783179">Сохранение метаданных</translation>
 <translation id="6233780560267770709">3 на 3</translation>
 <translation id="6243827288366940320">Золотое сечение</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sk.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sk.xtb
index bbec85e..fe151208 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sk.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sk.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="sk">
 <translation id="1276998909102132017">Obrázky galérie</translation>
 <translation id="1430915738399379752">Tlačiť</translation>
-<translation id="1462966117743110941">Váš fotoaparát teraz podporuje nové režimy a fotky aj videá budete mať k dispozícii v priečinkoch stiahnutých súborov.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">Nič sa nezaznamenalo</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> sa nepodarilo exportovať</translation>
 <translation id="1899697626337024495">Rozlíšenie fotky</translation>
-<translation id="2008689030244369546">Úplne nový vzhľad</translation>
 <translation id="2036868001356139588">Trvanie časovača</translation>
 <translation id="2050339315714019657">Na výšku</translation>
 <translation id="2064538373111010176">Aktívny fotoaparát: <ph name="CAMERA" /></translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Štvorec</translation>
 <translation id="5775960006311140197">Expertný režim</translation>
 <translation id="5869546221129391014">Mriežka</translation>
-<translation id="6040143037577758943">Zavrieť</translation>
 <translation id="6073451960410192870">Zastaviť zaznamenávanie</translation>
-<translation id="6165508094623778733">Ďalšie informácie</translation>
 <translation id="6197807149213783179">Uložiť metadáta</translation>
 <translation id="6233780560267770709">3 na 3</translation>
 <translation id="6243827288366940320">Zlatý rez</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sl.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sl.xtb
index 14f98f1b..df74be01 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sl.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sl.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="sl">
 <translation id="1276998909102132017">Slike v galeriji</translation>
 <translation id="1430915738399379752">Natisni</translation>
-<translation id="1462966117743110941">Vaš fotoaparat zdaj podpira nove načine in fotografije ter videoposnetki bodo na voljo v mapi Prenosi.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Nič ni posneto</translation>
 <translation id="1862930711583847113">Datoteke <ph name="FILE" /> ni mogoče izvoziti</translation>
 <translation id="1899697626337024495">Ločljivost fotografije</translation>
-<translation id="2008689030244369546">Popolnoma nov videz</translation>
 <translation id="2036868001356139588">Trajanje časovnika</translation>
 <translation id="2050339315714019657">Pokončno</translation>
 <translation id="2064538373111010176">Fotoaparat <ph name="CAMERA" /> je aktiven</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadratno</translation>
 <translation id="5775960006311140197">Poznavalski način</translation>
 <translation id="5869546221129391014">Mreža</translation>
-<translation id="6040143037577758943">Zapri</translation>
 <translation id="6073451960410192870">Ustavi snemanje</translation>
-<translation id="6165508094623778733">Več o tem</translation>
 <translation id="6197807149213783179">Shrani metapodatke</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">Zlato razmerje</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sr.xtb
index a8be2ee..0a6dcc2 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sr.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="sr">
 <translation id="1276998909102132017">Слике у галерији</translation>
 <translation id="1430915738399379752">Штампај</translation>
-<translation id="1462966117743110941">Камера сада подржава нове режиме и слике и видео снимци ће бити доступни у директоријумима Преузимања.</translation>
 <translation id="1620510694547887537">Камера</translation>
 <translation id="1627744224761163218">4×4</translation>
 <translation id="1664224225747386870">Ништа није снимљено</translation>
 <translation id="1862930711583847113">Извоз датотеке <ph name="FILE" /> није успео</translation>
 <translation id="1899697626337024495">Резолуција слике</translation>
-<translation id="2008689030244369546">Потпуно нови изглед</translation>
 <translation id="2036868001356139588">Трајање тајмера</translation>
 <translation id="2050339315714019657">Вертикално</translation>
 <translation id="2064538373111010176">Kamera <ph name="CAMERA" /> је активна</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Квадрат</translation>
 <translation id="5775960006311140197">Режим за стручњаке</translation>
 <translation id="5869546221129391014">Мрежа</translation>
-<translation id="6040143037577758943">Затвори</translation>
 <translation id="6073451960410192870">Заустави снимање</translation>
-<translation id="6165508094623778733">Сазнајте више</translation>
 <translation id="6197807149213783179">Сачувај метаподатке</translation>
 <translation id="6233780560267770709">3 са 3</translation>
 <translation id="6243827288366940320">Златни пресек</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
index a4aa033d..cff519e 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sv.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="sv">
 <translation id="1276998909102132017">Bilder i galleriet</translation>
 <translation id="1430915738399379752">Skriv ut</translation>
-<translation id="1462966117743110941">Kameran har nu stöd för nya lägen och dina bilder och videor blir tillgängliga i mapparna för nedladdade filer.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 × 4</translation>
 <translation id="1664224225747386870">Ingenting spelades in</translation>
 <translation id="1862930711583847113">Det gick inte att exportera <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Fotoupplösning</translation>
-<translation id="2008689030244369546">Ett helt nytt utseende</translation>
 <translation id="2036868001356139588">Timerns längd</translation>
 <translation id="2050339315714019657">Stående</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> aktiv</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kvadratiskt</translation>
 <translation id="5775960006311140197">Expertläge</translation>
 <translation id="5869546221129391014">Rutnät</translation>
-<translation id="6040143037577758943">Stäng</translation>
 <translation id="6073451960410192870">Sluta spela in</translation>
-<translation id="6165508094623778733">Läs mer</translation>
 <translation id="6197807149213783179">Spara metadata</translation>
 <translation id="6233780560267770709">Tre gånger tre</translation>
 <translation id="6243827288366940320">Gyllene snittet</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sw.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sw.xtb
index c7458440..7bd0fc19 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sw.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_sw.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="sw">
 <translation id="1276998909102132017">Picha za matunzio</translation>
 <translation id="1430915738399379752">Chapisha</translation>
-<translation id="1462966117743110941">Kamera yako sasa inatumia hali mpya na picha na video zako zitapatikana chini ya folda zako za Vipakuliwa.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Haijarekodi chochote</translation>
 <translation id="1862930711583847113">Imeshindwa kutuma <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Ubora wa picha</translation>
-<translation id="2008689030244369546">Mwonekano mpya kamili</translation>
 <translation id="2036868001356139588">Urefu wa kipima muda</translation>
 <translation id="2050339315714019657">Wima</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> inatumika</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Mraba</translation>
 <translation id="5775960006311140197">Hali ya wataalamu</translation>
 <translation id="5869546221129391014">Gridi</translation>
-<translation id="6040143037577758943">Funga</translation>
 <translation id="6073451960410192870">Acha kurekodi</translation>
-<translation id="6165508094623778733">Pata maelezo zaidi</translation>
 <translation id="6197807149213783179">Hifadhi metadata</translation>
 <translation id="6233780560267770709">3 kwa 3</translation>
 <translation id="6243827288366940320">Uwiano bora zaidi</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ta.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ta.xtb
index 6a9ae26..80b6b27 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_ta.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="ta">
 <translation id="1276998909102132017">கேலரி படங்கள்</translation>
 <translation id="1430915738399379752">அச்சிடுக</translation>
-<translation id="1462966117743110941">தற்போது உங்கள் கேமரா புதிய பயன்முறைகளை ஆதரிக்கிறது, உங்கள் படங்களும் வீடியோக்களும் 'பதிவிறக்கங்கள்' கோப்புறையில் காட்டப்படும்.</translation>
 <translation id="1620510694547887537">கேமரா</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">எதுவும் பதிவுசெய்யப்படவில்லை</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> கோப்பை இடமாற்ற முடியவில்லை</translation>
 <translation id="1899697626337024495">படத் தெளிவுத்திறன்</translation>
-<translation id="2008689030244369546">முற்றிலும் புதிய தோற்றம்</translation>
 <translation id="2036868001356139588">டைமர் காலஅளவு</translation>
 <translation id="2050339315714019657">செங்குத்து நிலை</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> செயலில் உள்ளது</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">சதுரம்</translation>
 <translation id="5775960006311140197">எக்ஸ்பெர்ட் பயன்முறை</translation>
 <translation id="5869546221129391014">கட்டம்</translation>
-<translation id="6040143037577758943">மூடு</translation>
 <translation id="6073451960410192870">பதிவுசெய்வதை நிறுத்து</translation>
-<translation id="6165508094623778733">மேலும் அறிக</translation>
 <translation id="6197807149213783179">தரவுத்தகவலைச் சேமி</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">கோல்டன் விகிதம்</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
index 2f3f896..7bfc551 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_te.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="te">
 <translation id="1276998909102132017">గ్యాలరీ చిత్రాలు</translation>
 <translation id="1430915738399379752">ముద్రించు</translation>
-<translation id="1462966117743110941">మీ కెమెరా ఇప్పుడు కొత్త మోడ్‌లకు మద్దతు ఇస్తుంది, అలాగే మీ డౌన్‌లోడ్‌లు ఫోల్డర్‌లలో మీ ఫోటోలు, వీడియోలు అందుబాటులో ఉంటాయి.</translation>
 <translation id="1620510694547887537">కెమెరా</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ఏదీ రికార్డ్ చేయలేదు</translation>
 <translation id="1862930711583847113"><ph name="FILE" />ను ఎగుమతి చేయడం సాధ్యం కాలేదు</translation>
 <translation id="1899697626337024495">ఫోటో రిజల్యూషన్</translation>
-<translation id="2008689030244369546">పూర్తిగా సరికొత్త రూపం</translation>
 <translation id="2036868001356139588">టైమర్ వ్యవధి</translation>
 <translation id="2050339315714019657">పోర్ట్రెయిట్</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> యాక్టివ్‌గా ఉంది</translation>
@@ -42,9 +40,7 @@
 <translation id="5152121255775685072">గ్యాలరీకి వెళ్లు</translation>
 <translation id="5671277269877808209">చతురస్రం</translation>
 <translation id="5869546221129391014">గ్రిడ్</translation>
-<translation id="6040143037577758943">మూసివేయి</translation>
 <translation id="6073451960410192870">రికార్డ్ చేయడం ఆపివేయి</translation>
-<translation id="6165508094623778733">మరింత తెలుసుకోండి</translation>
 <translation id="6233780560267770709">3 బై 3</translation>
 <translation id="6243827288366940320">గోల్డెన్ నిష్పత్తి</translation>
 <translation id="6248749904681914629">బయటి కెమెరా</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_th.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_th.xtb
index afd3c20..edaa4e1 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_th.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_th.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="th">
 <translation id="1276998909102132017">รูปภาพในแกลเลอรี</translation>
 <translation id="1430915738399379752">พิมพ์</translation>
-<translation id="1462966117743110941">ตอนนี้กล้องรองรับโหมดใหม่แล้ว และรูปภาพและวิดีโอจะอยู่ในโฟลเดอร์การดาวน์โหลด</translation>
 <translation id="1620510694547887537">กล้องถ่ายรูป</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">ไม่ได้บันทึกข้อมูลใด</translation>
 <translation id="1862930711583847113">ส่งออก <ph name="FILE" /> ไม่ได้</translation>
 <translation id="1899697626337024495">ความละเอียดรูปภาพ</translation>
-<translation id="2008689030244369546">รูปลักษณ์ใหม่ทั้งหมด</translation>
 <translation id="2036868001356139588">ระยะเวลาของตัวจับเวลา</translation>
 <translation id="2050339315714019657">แนวตั้ง</translation>
 <translation id="2064538373111010176">ใช้งาน <ph name="CAMERA" /> อยู่</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">สี่เหลี่ยมจัตุรัส</translation>
 <translation id="5775960006311140197">โหมดผู้เชี่ยวชาญ</translation>
 <translation id="5869546221129391014">ตาราง</translation>
-<translation id="6040143037577758943">ปิด</translation>
 <translation id="6073451960410192870">หยุดบันทึก</translation>
-<translation id="6165508094623778733">ดูข้อมูลเพิ่มเติม</translation>
 <translation id="6197807149213783179">บันทึกข้อมูลเมตา</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">อัตราส่วนทองคำ</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
index dc740ca5..1061005 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_tr.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="tr">
 <translation id="1276998909102132017">Galeri resimleri</translation>
 <translation id="1430915738399379752">Yazdır</translation>
-<translation id="1462966117743110941">Kameranız artık yeni modları destekliyor. Fotoğraflarınız ve videolarınız, İndirilenler klasörlerinizin altında yer alacak.</translation>
 <translation id="1620510694547887537">Kamera</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Hiçbir şey kaydedilmedi</translation>
 <translation id="1862930711583847113"><ph name="FILE" /> dışa aktarılamıyor</translation>
 <translation id="1899697626337024495">Fotoğraf Çözünürlüğü</translation>
-<translation id="2008689030244369546">Tamamıyla yeni bir görünüm</translation>
 <translation id="2036868001356139588">Zamanlayıcı süresi</translation>
 <translation id="2050339315714019657">Dikey</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> etkin</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Kare</translation>
 <translation id="5775960006311140197">Uzman modu</translation>
 <translation id="5869546221129391014">Tablo</translation>
-<translation id="6040143037577758943">Kapat</translation>
 <translation id="6073451960410192870">Kaydı durdur</translation>
-<translation id="6165508094623778733">Daha fazla bilgi edinin</translation>
 <translation id="6197807149213783179">Meta veriyi kaydet</translation>
 <translation id="6233780560267770709">3'e 3</translation>
 <translation id="6243827288366940320">Altın oran</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
index cd59241..8403bb96 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_uk.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="uk">
 <translation id="1276998909102132017">Зображення з галереї</translation>
 <translation id="1430915738399379752">Друк</translation>
-<translation id="1462966117743110941">Ваша камера тепер підтримує нові режими. Фотографії та відео будуть доступні в папках "Завантаження".</translation>
 <translation id="1620510694547887537">Камера</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Нічого не записано</translation>
 <translation id="1862930711583847113">Не вдається експортувати файл "<ph name="FILE" />"</translation>
 <translation id="1899697626337024495">Роздільна здатність фото</translation>
-<translation id="2008689030244369546">Абсолютно новий вигляд</translation>
 <translation id="2036868001356139588">Тривалість таймера</translation>
 <translation id="2050339315714019657">Портретна</translation>
 <translation id="2064538373111010176">Опція "<ph name="CAMERA" />" активна</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Квадрат</translation>
 <translation id="5775960006311140197">Режим експерта</translation>
 <translation id="5869546221129391014">Сітка</translation>
-<translation id="6040143037577758943">Закрити</translation>
 <translation id="6073451960410192870">Припинити запис</translation>
-<translation id="6165508094623778733">Докладніше</translation>
 <translation id="6197807149213783179">Зберегти метадані</translation>
 <translation id="6233780560267770709">3 на 3</translation>
 <translation id="6243827288366940320">Золотий перетин</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
index 8de0b2a..e635500 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_vi.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="vi">
 <translation id="1276998909102132017">Ảnh trong thư viện</translation>
 <translation id="1430915738399379752">In</translation>
-<translation id="1462966117743110941">Máy ảnh hiện hỗ trợ các chế độ mới, đồng thời ảnh và video sẽ có trong các thư mục Tệp đã tải xuống.</translation>
 <translation id="1620510694547887537">Máy ảnh</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">Chưa ghi dữ liệu nào</translation>
 <translation id="1862930711583847113">Không thể xuất <ph name="FILE" /></translation>
 <translation id="1899697626337024495">Độ phân giải của ảnh</translation>
-<translation id="2008689030244369546">Giao diện hoàn toàn mới</translation>
 <translation id="2036868001356139588">Thời lượng bộ hẹn giờ</translation>
 <translation id="2050339315714019657">Khổ dọc</translation>
 <translation id="2064538373111010176"><ph name="CAMERA" /> đang hoạt động</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">Vuông</translation>
 <translation id="5775960006311140197">Chế độ Chuyên gia</translation>
 <translation id="5869546221129391014">Lưới</translation>
-<translation id="6040143037577758943">Đóng</translation>
 <translation id="6073451960410192870">Dừng ghi</translation>
-<translation id="6165508094623778733">Tìm hiểu thêm</translation>
 <translation id="6197807149213783179">Lưu siêu dữ liệu</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">Tỷ lệ vàng</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
index 7e1e81a..3d37efc 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-CN.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="zh-CN">
 <translation id="1276998909102132017">图库图片</translation>
 <translation id="1430915738399379752">打印</translation>
-<translation id="1462966117743110941">您的相机现在支持新模式,并且您的照片和视频将出现在“下载内容”文件夹中。</translation>
 <translation id="1620510694547887537">摄像头</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">未记录任何数据</translation>
 <translation id="1862930711583847113">无法导出“<ph name="FILE" />”</translation>
 <translation id="1899697626337024495">照片分辨率</translation>
-<translation id="2008689030244369546">全新面貌</translation>
 <translation id="2036868001356139588">定时器时长</translation>
 <translation id="2050339315714019657">纵向</translation>
 <translation id="2064538373111010176">已切换到<ph name="CAMERA" /></translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">方形</translation>
 <translation id="5775960006311140197">专家模式</translation>
 <translation id="5869546221129391014">网格</translation>
-<translation id="6040143037577758943">关闭</translation>
 <translation id="6073451960410192870">停止录制</translation>
-<translation id="6165508094623778733">了解详情</translation>
 <translation id="6197807149213783179">保存元数据</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">黄金比例</translation>
diff --git a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
index b36d38b..4346eab 100644
--- a/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
+++ b/chrome/browser/resources/chromeos/camera/src/strings/camera_strings_zh-TW.xtb
@@ -3,13 +3,11 @@
 <translationbundle lang="zh-TW">
 <translation id="1276998909102132017">圖片庫圖片</translation>
 <translation id="1430915738399379752">列印</translation>
-<translation id="1462966117743110941">你的相機現已支援新模式,相片和影片將會儲存在「下載」資料夾中。</translation>
 <translation id="1620510694547887537">攝影機</translation>
 <translation id="1627744224761163218">4 x 4</translation>
 <translation id="1664224225747386870">未錄製任何內容</translation>
 <translation id="1862930711583847113">無法匯出「<ph name="FILE" />」</translation>
 <translation id="1899697626337024495">相片解析度</translation>
-<translation id="2008689030244369546">全新介面</translation>
 <translation id="2036868001356139588">計時器倒數時間</translation>
 <translation id="2050339315714019657">縱向</translation>
 <translation id="2064538373111010176">「<ph name="CAMERA" />」已啟用</translation>
@@ -44,9 +42,7 @@
 <translation id="5671277269877808209">正方形</translation>
 <translation id="5775960006311140197">專家模式</translation>
 <translation id="5869546221129391014">格線</translation>
-<translation id="6040143037577758943">關閉</translation>
 <translation id="6073451960410192870">停止錄影</translation>
-<translation id="6165508094623778733">瞭解詳情</translation>
 <translation id="6197807149213783179">儲存中繼資料</translation>
 <translation id="6233780560267770709">3 x 3</translation>
 <translation id="6243827288366940320">黃金比例</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
index 234c4d9..ed9a6719 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_de.xtb
@@ -168,7 +168,7 @@
 <translation id="2220529011494928058">Problem melden</translation>
 <translation id="2223693656926968778">Aktion für aktuelles Element durchführen</translation>
 <translation id="225732394367814946">Sprechgeschwindigkeit erhöhen</translation>
-<translation id="2267538686624070261">Rechtschreibfehler ignoriert</translation>
+<translation id="2267538686624070261">Rechtschreibfehler wird verlassen</translation>
 <translation id="2267945578749931355">Nächstes Zeichen</translation>
 <translation id="2278490101488436824">Mit drei Fingern nach links wischen</translation>
 <translation id="2281234842553884450">Vorheriger Schieberegler</translation>
@@ -1113,7 +1113,7 @@
 <translation id="8446884382197647889">Weitere Informationen</translation>
 <translation id="8455868257606149352">Max.: <ph name="X" /></translation>
 <translation id="84575901236241018">verfügt über den Zugriffsschlüssel <ph name="KEY" />.</translation>
-<translation id="8463645336674919227">Grammatikfehler ignoriert</translation>
+<translation id="8463645336674919227">Grammatikfehler wird verlassen</translation>
 <translation id="847154984256717791">beschäftigt</translation>
 <translation id="8476408756881832830">Wiedergabe pausieren, wenn eine Sprachausgabe durch ChromeVox stattfindet</translation>
 <translation id="8476508772960940536">Fensterübersicht</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
index 0af816c..223289f5b 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_fil.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">Mag-ulat ng isyu</translation>
 <translation id="2223693656926968778">Magsagawa ng pagkilos sa kasalukuyang item</translation>
 <translation id="225732394367814946">Dagdagan ang rate ng speech</translation>
+<translation id="2267538686624070261">Umaalis sa mali ang spelling</translation>
 <translation id="2267945578749931355">Susunod na Character</translation>
 <translation id="2278490101488436824">Mag-swipe pakaliwa gamit ang tatlong daliri</translation>
 <translation id="2281234842553884450">Nakaraang slider</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">Pangkat</translation>
 <translation id="2582407057977008361">Kaugnay</translation>
 <translation id="2592212930811759050">I-double tap para simulan ang pag-edit</translation>
+<translation id="2598495320872286378">Error sa grammar</translation>
 <translation id="2614981083756825552">Math ML Layout</translation>
 <translation id="2624431853467395961">Buksan ang learn mode</translation>
 <translation id="2626530649491650971">naki-click</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">Footer</translation>
 <translation id="6858047746862060282">Prologue</translation>
 <translation id="6859876496651143278">Mag-swipe pakaliwa gamit ang isang daliri</translation>
+<translation id="6865519907510167493">Mali ang Spelling</translation>
 <translation id="6871161210040114857">Binabalewala ang case.</translation>
 <translation id="6877435256196695200">Walang susunod na graphic.</translation>
 <translation id="6897341342232909480">Ilipat pakaliwa</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">Matuto Pa</translation>
 <translation id="8455868257606149352">Max <ph name="X" /></translation>
 <translation id="84575901236241018">may access key, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">Umaalis sa error sa grammar</translation>
 <translation id="847154984256717791">busy</translation>
 <translation id="8476408756881832830">I-pause ang pag-playback kapag nagsasalita ang ChromeVox</translation>
 <translation id="8476508772960940536">pangkalahatang-ideya ng window</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
index 8a2d471..c844abd 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_hi.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">किसी समस्या की रिपोर्ट करें</translation>
 <translation id="2223693656926968778">मौजूदा आइटम पर कार्रवाई करें</translation>
 <translation id="225732394367814946">बोली की दर बढ़ाएं</translation>
+<translation id="2267538686624070261">गलत वर्तनी छोड़ रहे हैं</translation>
 <translation id="2267945578749931355">अगला वर्ण</translation>
 <translation id="2278490101488436824">तीन उंगलियों से बाईं ओर स्वाइप करें</translation>
 <translation id="2281234842553884450">पिछला स्लाइडर</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">समूह</translation>
 <translation id="2582407057977008361">अलग</translation>
 <translation id="2592212930811759050">बदलाव शुरू करने के लिए दो बार टैप करें</translation>
+<translation id="2598495320872286378">व्याकरण की गड़बड़ी</translation>
 <translation id="2614981083756825552">गणित ML लेआउट</translation>
 <translation id="2624431853467395961">जानें मोड खोलें</translation>
 <translation id="2626530649491650971">क्‍लिक करने योग्‍य</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">पादलेख</translation>
 <translation id="6858047746862060282">प्रस्तावना</translation>
 <translation id="6859876496651143278">एक उंगली से बाईं ओर स्वाइप करें</translation>
+<translation id="6865519907510167493">गलत वर्तनी</translation>
 <translation id="6871161210040114857">केस को अनदेखा करना.</translation>
 <translation id="6877435256196695200">कोई अगला ग्राफ़िक नहीं.</translation>
 <translation id="6897341342232909480">बाएं ले जाएं</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">ज़्यादा जानें</translation>
 <translation id="8455868257606149352">अधिकतम <ph name="X" /></translation>
 <translation id="84575901236241018">एक्सेस कुंजी है, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">व्याकरण की गड़बड़ी छोड़ी जा रही है</translation>
 <translation id="847154984256717791">व्यस्त</translation>
 <translation id="8476408756881832830">जब ChromeVox बोल रहा हो, तब प्लेबैक रोकें</translation>
 <translation id="8476508772960940536">विंडो अवलोकन</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
index 4685e49..50cae76 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_iw.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">דיווח על בעיה</translation>
 <translation id="2223693656926968778">נקוט פעולה לגבי הפריט הנוכחי</translation>
 <translation id="225732394367814946">הגבר את קצב הדיבור</translation>
+<translation id="2267538686624070261">יציאה משגיאת איות</translation>
 <translation id="2267945578749931355">התו הבא</translation>
 <translation id="2278490101488436824">החלקה שמאלה עם שלוש אצבעות</translation>
 <translation id="2281234842553884450">המחוון הקודם</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">קבוצה</translation>
 <translation id="2582407057977008361">בצד</translation>
 <translation id="2592212930811759050">לחיצה פעמיים מפעילה עריכה</translation>
+<translation id="2598495320872286378">שגיאת דקדוק</translation>
 <translation id="2614981083756825552">‏פריסת Math ML</translation>
 <translation id="2624431853467395961">פתח מצב למידה</translation>
 <translation id="2626530649491650971">clickable</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">כותרת תחתונה</translation>
 <translation id="6858047746862060282">פרולוג</translation>
 <translation id="6859876496651143278">החלקה שמאלה עם אצבע אחת</translation>
+<translation id="6865519907510167493">שגיאת איות</translation>
 <translation id="6871161210040114857">ללא תלות ברישיות.</translation>
 <translation id="6877435256196695200">אין עוד פריט גרפיקה.</translation>
 <translation id="6897341342232909480">העבר שמאלה</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">למידע נוסף</translation>
 <translation id="8455868257606149352">מקסימום <ph name="X" /></translation>
 <translation id="84575901236241018">כולל מקש גישה, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">יציאה משגיאת דקדוק</translation>
 <translation id="847154984256717791">עסוק</translation>
 <translation id="8476408756881832830">‏השהה את ההשמעה כשתוסף ה-ChromeVox מקריא</translation>
 <translation id="8476508772960940536">סקירת חלון</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb
index 285d3c5..afa443a 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_kn.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">ಸಮಸ್ಯೆ ವರದಿಮಾಡಿ</translation>
 <translation id="2223693656926968778">ಪ್ರಸ್ತುತ ಐಟಂ ಕುರಿತು ಕ್ರಮ ಕೈಗೊಳ್ಳಿ</translation>
 <translation id="225732394367814946">ಮಾತಿನ ಪ್ರಮಾಣವನ್ನು ಹೆಚ್ಚಿಸಿ</translation>
+<translation id="2267538686624070261">ತಪ್ಪಾಗಿ ಬರೆದಿರುವ ಪದವನ್ನು ಬಿಟ್ಟುಬಿಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="2267945578749931355">ಮುಂದಿನ ಅಕ್ಷರ</translation>
 <translation id="2278490101488436824">ಮೂರು ಬೆರಳುಗಳಿಂದ ಎಡಕ್ಕೆ ಸ್ವೈಪ್‌ ಮಾಡಿ</translation>
 <translation id="2281234842553884450">ಹಿಂದಿನ ಸ್ಲೈಡರ್</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">ಗುಂಪು</translation>
 <translation id="2582407057977008361">ಹೊರತಾಗಿ</translation>
 <translation id="2592212930811759050">ಎಡಿಟಿಂಗ್ ಪ್ರಾರಂಭಿಸಲು ಡಬಲ್ ಟ್ಯಾಪ್ ಮಾಡಿ</translation>
+<translation id="2598495320872286378">ವ್ಯಾಕರಣ ದೋಷ</translation>
 <translation id="2614981083756825552">ಗಣಿತ ML ಲೇಔಟ್</translation>
 <translation id="2624431853467395961">ಕಲಿಕೆ ಮೋಡ್‌ ತೆರೆಯಿರಿ</translation>
 <translation id="2626530649491650971">ಕ್ಲಿಕ್ ಮಾಡಬಹುದಾದ</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">ಅಡಿಟಿಪ್ಪಣಿ</translation>
 <translation id="6858047746862060282">ಪೀಠಿಕೆ</translation>
 <translation id="6859876496651143278">ಒಂದು ಬೆರಳಿನಿಂದ ಎಡಕ್ಕೆ ಸ್ವೈಪ್‌ ಮಾಡಿ</translation>
+<translation id="6865519907510167493">ತಪ್ಪಾಗಿ ಬರೆದಿರುವ ಪದ</translation>
 <translation id="6871161210040114857">ಕೇಸ್ ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation>
 <translation id="6877435256196695200">ಮುಂದಿನ ಗ್ರಾಫಿಕ್‌ಯಿಲ್ಲ.</translation>
 <translation id="6897341342232909480">ಎಡಕ್ಕೆ ಸೇರಿಸಿ</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
 <translation id="8455868257606149352">ಗರಿಷ್ಟ <ph name="X" /></translation>
 <translation id="84575901236241018">ಪ್ರವೇಶ ಕೀ ಹೊಂದಿದೆ, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">ವ್ಯಾಕರಣ ದೋಷವನ್ನು ತೊರೆಯಲಾಗುತ್ತಿದೆ</translation>
 <translation id="847154984256717791">ಕಾರ್ಯನಿರತ</translation>
 <translation id="8476408756881832830">ChromeVox ಮಾತನಾಡುತ್ತಿರುವಾಗ ಪ್ಲೇಬ್ಯಾಕ್ ಅನ್ನು ವಿರಾಮಗೊಳಿಸಿ</translation>
 <translation id="8476508772960940536">ವಿಂಡೋ ಸಮಗ್ರ ನೋಟ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
index 3d46ed1..9fadabb 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_ta.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">சிக்கல் குறித்துப் புகார் செய்</translation>
 <translation id="2223693656926968778">நடப்பு உருப்படியில் நடவடிக்கை எடு</translation>
 <translation id="225732394367814946">பேச்சு விகிதத்தை அதிகரி</translation>
+<translation id="2267538686624070261">எழுத்துப் பிழையைத் தவிர்த்துச் செல்கிறீர்கள்</translation>
 <translation id="2267945578749931355">அடுத்த எழுத்து</translation>
 <translation id="2278490101488436824">மூன்று விரல்களை இடதுபுறமாக ஸ்வைப் செய்யவும்</translation>
 <translation id="2281234842553884450">முந்தைய ஸ்லைடர்</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">குழு</translation>
 <translation id="2582407057977008361">Aside</translation>
 <translation id="2592212930811759050">திருத்துவதற்கு, இருமுறை தட்டவும்</translation>
+<translation id="2598495320872286378">இலக்கணப் பிழை</translation>
 <translation id="2614981083756825552">கணித ML தளவமைப்பு</translation>
 <translation id="2624431853467395961">கற்றல் பயன்முறையைத் திறக்கவும்</translation>
 <translation id="2626530649491650971">கிளிக் செய்யத்தக்கது</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">அடிக்குறிப்பு</translation>
 <translation id="6858047746862060282">முன்னுரை</translation>
 <translation id="6859876496651143278">ஒரு விரலை இடதுபுறமாக ஸ்வைப் செய்யவும்</translation>
+<translation id="6865519907510167493">எழுத்துப்பிழை உள்ளது</translation>
 <translation id="6871161210040114857">எழுத்து உணர்வு புறக்கணிக்கப்பட்டது.</translation>
 <translation id="6877435256196695200">அடுத்த கிராஃபிக் இல்லை.</translation>
 <translation id="6897341342232909480">இடப்புறம் நகர்த்து</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">மேலும் அறிக</translation>
 <translation id="8455868257606149352">அதிகபட்சம் <ph name="X" /></translation>
 <translation id="84575901236241018">அணுகல் விசை உள்ளது, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">இலக்கணப் பிழையைத் தவிர்த்துச் செல்கிறீர்கள்</translation>
 <translation id="847154984256717791">பிஸி</translation>
 <translation id="8476408756881832830">ChromeVox பேசும் போது, பிளேபேக்கை இடைநிறுத்து</translation>
 <translation id="8476508772960940536">சாளரத்தின் மேலோட்டம்</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
index 07cc4e3..2fd9fc4e 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_vi.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">Báo cáo sự cố</translation>
 <translation id="2223693656926968778">Thực hiện tác vụ trên mục hiện tại</translation>
 <translation id="225732394367814946">Tăng tốc độ nói</translation>
+<translation id="2267538686624070261">Rời khỏi từ sai chính tả</translation>
 <translation id="2267945578749931355">Ký tự tiếp theo</translation>
 <translation id="2278490101488436824">Vuốt sang trái bằng ba ngón tay</translation>
 <translation id="2281234842553884450">Thanh trượt trước</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">Nhóm</translation>
 <translation id="2582407057977008361">Loại trừ</translation>
 <translation id="2592212930811759050">Nhấn đúp để bắt đầu chỉnh sửa</translation>
+<translation id="2598495320872286378">Lỗi ngữ pháp</translation>
 <translation id="2614981083756825552">Bố cục toán học ML</translation>
 <translation id="2624431853467395961">Mở chế độ học</translation>
 <translation id="2626530649491650971">có thể nhấp được</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">Chân trang</translation>
 <translation id="6858047746862060282">Phần mở đầu</translation>
 <translation id="6859876496651143278">Vuốt sang trái bằng một ngón tay</translation>
+<translation id="6865519907510167493">Sai chính tả</translation>
 <translation id="6871161210040114857">Không phân biệt chữ hoa / chữ thường.</translation>
 <translation id="6877435256196695200">Không có hình nào tiếp theo.</translation>
 <translation id="6897341342232909480">Di chuyển sang trái</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">Tìm hiểu thêm</translation>
 <translation id="8455868257606149352">Tối đa <ph name="X" /></translation>
 <translation id="84575901236241018">có khóa truy cập, <ph name="KEY" /></translation>
+<translation id="8463645336674919227">Rời khỏi lỗi ngữ pháp</translation>
 <translation id="847154984256717791">bận rộn</translation>
 <translation id="8476408756881832830">Tạm dừng phát lại khi ChromeVox đang nói</translation>
 <translation id="8476508772960940536">tổng quan về cửa sổ</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb
index 90e32b067..03b9a69 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-CN.xtb
@@ -168,6 +168,7 @@
 <translation id="2220529011494928058">报告问题</translation>
 <translation id="2223693656926968778">对当前项执行操作</translation>
 <translation id="225732394367814946">加快语速</translation>
+<translation id="2267538686624070261">您要退出的部分含有拼写错误</translation>
 <translation id="2267945578749931355">下一个字符</translation>
 <translation id="2278490101488436824">向左滑动三根手指</translation>
 <translation id="2281234842553884450">上一个滑块</translation>
@@ -206,6 +207,7 @@
 <translation id="257674075312929031">群组</translation>
 <translation id="2582407057977008361">边栏内容</translation>
 <translation id="2592212930811759050">点按两次即可开始修改</translation>
+<translation id="2598495320872286378">语法错误</translation>
 <translation id="2614981083756825552">数学标记语言布局</translation>
 <translation id="2624431853467395961">打开学习模式</translation>
 <translation id="2626530649491650971">可点击</translation>
@@ -820,6 +822,7 @@
 <translation id="6833103209700200188">页脚标记</translation>
 <translation id="6858047746862060282">序言</translation>
 <translation id="6859876496651143278">向左滑动一根手指</translation>
+<translation id="6865519907510167493">拼写错误</translation>
 <translation id="6871161210040114857">不区分大小写。</translation>
 <translation id="6877435256196695200">不存在下一个图形。</translation>
 <translation id="6897341342232909480">向左移动</translation>
@@ -1110,6 +1113,7 @@
 <translation id="8446884382197647889">了解详情</translation>
 <translation id="8455868257606149352">最大值为<ph name="X" /></translation>
 <translation id="84575901236241018">有快捷键,<ph name="KEY" /></translation>
+<translation id="8463645336674919227">您要退出的部分含有语法错误</translation>
 <translation id="847154984256717791">忙碌</translation>
 <translation id="8476408756881832830">在 ChromeVox 朗读时暂停播放音频</translation>
 <translation id="8476508772960940536">窗口概览</translation>
diff --git a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb
index ed1d1ea..aa0d5586 100644
--- a/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb
+++ b/chrome/browser/resources/chromeos/chromevox/strings/chromevox_strings_zh-TW.xtb
@@ -169,6 +169,7 @@
 <translation id="2220529011494928058">回報問題</translation>
 <translation id="2223693656926968778">對目前的項目進行操作</translation>
 <translation id="225732394367814946">加快說話速度</translation>
+<translation id="2267538686624070261">退出拼字錯誤</translation>
 <translation id="2267945578749931355">下一個字元</translation>
 <translation id="2278490101488436824">以三指向左滑動</translation>
 <translation id="2281234842553884450">上一個滑桿</translation>
@@ -207,6 +208,7 @@
 <translation id="257674075312929031">群組</translation>
 <translation id="2582407057977008361">獨立元素</translation>
 <translation id="2592212930811759050">輕觸兩下即可開始編輯</translation>
+<translation id="2598495320872286378">文法錯誤</translation>
 <translation id="2614981083756825552">MathML 版面配置</translation>
 <translation id="2624431853467395961">開啟學習模式</translation>
 <translation id="2626530649491650971">可點擊</translation>
@@ -821,6 +823,7 @@
 <translation id="6833103209700200188">頁尾</translation>
 <translation id="6858047746862060282">序言</translation>
 <translation id="6859876496651143278">以單指向左滑動</translation>
+<translation id="6865519907510167493">拼字錯誤</translation>
 <translation id="6871161210040114857">不區分大小寫。</translation>
 <translation id="6877435256196695200">沒有下一個圖形。</translation>
 <translation id="6897341342232909480">左移</translation>
@@ -1111,6 +1114,7 @@
 <translation id="8446884382197647889">瞭解詳情</translation>
 <translation id="8455868257606149352">最大值:<ph name="X" /></translation>
 <translation id="84575901236241018">有快捷鍵「<ph name="KEY" />」</translation>
+<translation id="8463645336674919227">退出文法錯誤</translation>
 <translation id="847154984256717791">忙碌</translation>
 <translation id="8476408756881832830">ChromeVox 朗讀時暫停播放音訊</translation>
 <translation id="8476508772960940536">視窗總覽</translation>
diff --git a/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html b/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
index 601a93b..1cd59ad 100644
--- a/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
+++ b/chrome/browser/resources/settings/android_apps_page/android_apps_subpage.html
@@ -20,7 +20,8 @@
           on-click="onManageAndroidAppsTap_" external></cr-link-row>
     </template>
 
-    <template is="dom-if" if="[[allowRemove_(prefs.arc.enabled.*)]]">
+    <!-- Use 'restamp' so tests can check if the row exists. -->
+    <template is="dom-if" if="[[allowRemove_(prefs.arc.enabled.*)]]" restamp>
       <div id="remove" class="settings-box">
         <div id="androidRemoveLabel" class="start">
             $i18n{androidAppsRemove}
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_am.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_am.xtb
index 1a8356cf..a2ed1c8 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_am.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_am.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="am"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="am">
+<translation id="2410754283952462441">አንድ መለያ ይምረጡ</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
index 577c15f..014d293 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ar.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ar"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ar">
+<translation id="2410754283952462441">اختيار حساب</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bg.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bg.xtb
index 25d06b3..f7c7990 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bg.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bg.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="bg"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="bg">
+<translation id="2410754283952462441">Изберете профил</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bn.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bn.xtb
index b02b1e7f..c0e7d51 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bn.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_bn.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="bn"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="bn">
+<translation id="2410754283952462441">একটি অ্যাকাউন্ট বেছে নিন</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ca.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ca.xtb
index 1e9d243..b9c73ab 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ca.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ca.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ca"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ca">
+<translation id="2410754283952462441">Tria un compte</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_cs.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_cs.xtb
index b6103f7..974a2fba 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_cs.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_cs.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="cs"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="cs">
+<translation id="2410754283952462441">Vyberte účet</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_da.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_da.xtb
index 6feffd32..fafcdaa 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_da.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_da.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="da"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="da">
+<translation id="2410754283952462441">Vælg en konto</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_de.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_de.xtb
index d2908e8a..856f8d8 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_de.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_de.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="de"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="de">
+<translation id="2410754283952462441">Konto auswählen</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_el.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_el.xtb
index 2d96e6c..8b939c2 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_el.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_el.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="el"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="el">
+<translation id="2410754283952462441">Επιλέξτε λογαριασμό</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_en-GB.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_en-GB.xtb
index 769a524..fe8fcc0 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_en-GB.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_en-GB.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="en-GB"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="en-GB">
+<translation id="2410754283952462441">Choose an account</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es-419.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es-419.xtb
index 37258dd..6e48b3b 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es-419.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es-419.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="es-419"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="es-419">
+<translation id="2410754283952462441">Elegir una cuenta</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb
index 27d8ca3..c869a75 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_es.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="es"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="es">
+<translation id="2410754283952462441">Elegir una cuenta</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_et.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_et.xtb
index a14139f..2eb3bfd 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_et.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_et.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="et"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="et">
+<translation id="2410754283952462441">Konto valimine</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb
index 41bc8c3..89b39cb 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fa.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fa"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="fa">
+<translation id="2410754283952462441">انتخاب حساب</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fi.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fi.xtb
index b2ed2bf..12fa0e0 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fi.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fi.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fi"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="fi">
+<translation id="2410754283952462441">Valitse tili</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fil.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fil.xtb
index 6ca565417..3fb9a75 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fil.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fil.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fil"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="fil">
+<translation id="2410754283952462441">Pumili ng account</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
index 1ce4293c..d021119 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_fr.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="fr"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="fr">
+<translation id="2410754283952462441">Sélectionner un compte</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
index 1b8a058..8be6444 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_gu.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="gu"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="gu">
+<translation id="2410754283952462441">એકાઉન્ટ પસંદ કરો</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hi.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hi.xtb
index e9f9cc5..479b8cd 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hi.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hi.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hi"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="hi">
+<translation id="2410754283952462441">कोई खाता चुनें</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
index abb8268..e528ebe 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hr.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hr"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="hr">
+<translation id="2410754283952462441">Odabir računa</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
index 5a7e2c9..b24c8f6 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_hu.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="hu"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="hu">
+<translation id="2410754283952462441">Válasszon fiókot</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_id.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_id.xtb
index bced312..adf0b29 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_id.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_id.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="id"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="id">
+<translation id="2410754283952462441">Pilih akun</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_it.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_it.xtb
index d56be5c..2fdad91a 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_it.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_it.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="it"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="it">
+<translation id="2410754283952462441">Scegli un account</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_iw.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_iw.xtb
index d17d24e..331656eb 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_iw.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_iw.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="iw"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="iw">
+<translation id="2410754283952462441">בחירת חשבון</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
index c5828bf..8dc5a7848 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ja.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ja"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ja">
+<translation id="2410754283952462441">アカウントの選択</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_kn.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_kn.xtb
index 6f2561a..52b4eea6 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_kn.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_kn.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="kn"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="kn">
+<translation id="2410754283952462441">ಖಾತೆಯೊಂದನ್ನು ಆರಿಸಿ</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
index aac09f4..b0bd1c5 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ko.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ko"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ko">
+<translation id="2410754283952462441">계정 선택</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
index e386c81..4ab7e31 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lt.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="lt"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="lt">
+<translation id="2410754283952462441">Pasirinkite paskyrą</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lv.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lv.xtb
index c27c4065..086ca91 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lv.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_lv.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="lv"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="lv">
+<translation id="2410754283952462441">Konta izvēle</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
index 970244e..b216bb44 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ml.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ml"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ml">
+<translation id="2410754283952462441">ഒരു അക്കൗണ്ട് തിരഞ്ഞെടുക്കൂ</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_mr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_mr.xtb
index 7eb198d..c0b720c 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_mr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_mr.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="mr"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="mr">
+<translation id="2410754283952462441">एक खाते निवडा</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
index b8f88eb5..09eda98 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ms.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ms"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ms">
+<translation id="2410754283952462441">Pilih akaun</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
index 08c20249..6cee8189 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_nl.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="nl"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="nl">
+<translation id="2410754283952462441">Een account selecteren</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
index 52b6011..b7905a94 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_no.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="no"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="no">
+<translation id="2410754283952462441">Velg en konto</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
index 57c76f6..1ec59b2 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pl.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pl"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="pl">
+<translation id="2410754283952462441">Wybierz konto</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
index 1ccc1be..b00c128 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-BR.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pt-BR"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="pt-BR">
+<translation id="2410754283952462441">Escolher uma conta</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
index 448ac9de..fef821c 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_pt-PT.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="pt-PT"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="pt-PT">
+<translation id="2410754283952462441">Selecionar uma conta</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
index ee107e4..45e0cd1 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ro.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ro"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ro">
+<translation id="2410754283952462441">Alege un cont</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ru.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ru.xtb
index 1161eea..6d48de9 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ru.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ru.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ru"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ru">
+<translation id="2410754283952462441">Выберите аккаунт</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sk.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sk.xtb
index 285c7cb..dfd32c9 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sk.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sk.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sk"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="sk">
+<translation id="2410754283952462441">Výber účtu</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sl.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sl.xtb
index 5b943686..082c84c8 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sl.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sl.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sl"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="sl">
+<translation id="2410754283952462441">Izbira računa</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
index 037a5c14..7b39386 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sr.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sr"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="sr">
+<translation id="2410754283952462441">Изаберите налог</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
index 8f4581fd..dff635f 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sv.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sv"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="sv">
+<translation id="2410754283952462441">Välj ett konto</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sw.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sw.xtb
index 0b25c33..24532cb 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sw.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_sw.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="sw"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="sw">
+<translation id="2410754283952462441">Chagua akaunti</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ta.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ta.xtb
index ab9e8aab..ba457f1 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ta.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_ta.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="ta"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="ta">
+<translation id="2410754283952462441">கணக்கைத் தேர்வு செய்யவும்</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_te.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_te.xtb
index c35f476..6e390eb 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_te.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_te.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="te"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="te">
+<translation id="2410754283952462441">ఖాతాను ఎంచుకోండి</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
index 5d81291..274b608 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_th.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="th"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="th">
+<translation id="2410754283952462441">เลือกบัญชี</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_tr.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_tr.xtb
index ead1d39..73c1b82 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_tr.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_tr.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="tr"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="tr">
+<translation id="2410754283952462441">Bir hesap seçin</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uk.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uk.xtb
index 29134e1..97ade9c 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uk.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_uk.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="uk"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="uk">
+<translation id="2410754283952462441">Виберіть обліковий запис</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
index d858f99..0cc04f39 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_vi.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="vi"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="vi">
+<translation id="2410754283952462441">Chọn một tài khoản</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-CN.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-CN.xtb
index effe01e..3535a42 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-CN.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-CN.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="zh-CN"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="zh-CN">
+<translation id="2410754283952462441">选择帐号</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
index cb82bea..cf1be92 100644
--- a/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
+++ b/chrome/browser/touch_to_fill/android/internal/java/strings/translations/android_touch_to_fill_strings_zh-TW.xtb
@@ -1 +1,5 @@
-<?xml version="1.0" ?><!DOCTYPE translationbundle><translationbundle lang="zh-TW"></translationbundle>
+<?xml version="1.0" ?>
+<!DOCTYPE translationbundle>
+<translationbundle lang="zh-TW">
+<translation id="2410754283952462441">選擇帳戶</translation>
+</translationbundle>
\ No newline at end of file
diff --git a/chrome/browser/ui/app_list/app_service/app_service_app_icon_loader.cc b/chrome/browser/ui/app_list/app_service/app_service_app_icon_loader.cc
index bcb239bf..dbdd4317 100644
--- a/chrome/browser/ui/app_list/app_service/app_service_app_icon_loader.cc
+++ b/chrome/browser/ui/app_list/app_service/app_service_app_icon_loader.cc
@@ -6,6 +6,7 @@
 
 #include "chrome/browser/apps/app_service/app_service_proxy.h"
 #include "chrome/browser/apps/app_service/app_service_proxy_factory.h"
+#include "chrome/browser/chromeos/crostini/crostini_registry_service.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/services/app_service/public/cpp/app_registry_cache.h"
 #include "chrome/services/app_service/public/cpp/app_update.h"
@@ -84,6 +85,21 @@
     return;
   }
 
+  // When Crostini generates shelf id as the app_id, which couldn't match to an
+  // app, the default penguin icon should be loaded.
+  if (base::StartsWith(app_id, crostini::kCrostiniAppIdPrefix,
+                       base::CompareCase::SENSITIVE)) {
+    apps::mojom::IconKeyPtr icon_key = apps::mojom::IconKey::New();
+    icon_key->resource_id = apps::mojom::IconKey::kInvalidResourceId;
+    proxy->LoadIconFromIconKey(
+        apps::mojom::AppType::kCrostini, app_id, std::move(icon_key),
+        apps::mojom::IconCompression::kUncompressed, icon_size_in_dip(),
+        allow_placeholder_icon,
+        base::BindOnce(&AppServiceAppIconLoader::OnLoadIcon,
+                       weak_ptr_factory_.GetWeakPtr(), app_id));
+    return;
+  }
+
   apps::mojom::AppType app_type = proxy->AppRegistryCache().GetAppType(app_id);
   if (app_type == apps::mojom::AppType::kUnknown) {
     return;
diff --git a/chrome/browser/ui/ash/assistant/device_actions.cc b/chrome/browser/ui/ash/assistant/device_actions.cc
index 250bf50..b5fe556 100644
--- a/chrome/browser/ui/ash/assistant/device_actions.cc
+++ b/chrome/browser/ui/ash/assistant/device_actions.cc
@@ -241,6 +241,16 @@
     scoped_prefs_observer_.Add(prefs);
 }
 
+base::Optional<std::string> DeviceActions::GetAndroidAppLaunchIntent(
+    chromeos::assistant::mojom::AndroidAppInfoPtr app_info) {
+  app_info->status = GetAndroidAppStatus(app_info->package_name);
+
+  if (app_info->status != AppStatus::AVAILABLE)
+    return base::nullopt;
+
+  return GetLaunchIntent(std::move(app_info));
+}
+
 void DeviceActions::OnPackageListInitialRefreshed() {
   NotifyAndroidAppListRefreshed(app_list_subscribers_);
 }
diff --git a/chrome/browser/ui/ash/assistant/device_actions.h b/chrome/browser/ui/ash/assistant/device_actions.h
index d3f64a89..cc89f95 100644
--- a/chrome/browser/ui/ash/assistant/device_actions.h
+++ b/chrome/browser/ui/ash/assistant/device_actions.h
@@ -38,6 +38,10 @@
       chromeos::assistant::mojom::AppListEventSubscriberPtr subscriber)
       override;
 
+  // ash::AndroidIntentHelper overrides:
+  base::Optional<std::string> GetAndroidAppLaunchIntent(
+      chromeos::assistant::mojom::AndroidAppInfoPtr app_info) override;
+
  private:
   // ArcAppListPrefs::Observer overrides.
   void OnPackageListInitialRefreshed() override;
diff --git a/chrome/browser/ui/browser.cc b/chrome/browser/ui/browser.cc
index 3d5d9ac0..536aa8c 100644
--- a/chrome/browser/ui/browser.cc
+++ b/chrome/browser/ui/browser.cc
@@ -2297,8 +2297,14 @@
 
 void Browser::ScheduleUIUpdate(WebContents* source, unsigned changed_flags) {
   DCHECK(source);
-  int index = tab_strip_model_->GetIndexOfWebContents(source);
-  DCHECK_NE(TabStripModel::kNoTab, index);
+  // WebContents may in some rare cases send updates after they've been detached
+  // from the tabstrip but before they are deleted, causing a potential crash if
+  // we proceed. For now bail out.
+  // TODO(crbug.com/1007379) Figure out a safe way to detach browser delegate
+  // from WebContents when it's removed so this doesn't happen - then put a
+  // DCHECK back here.
+  if (tab_strip_model_->GetIndexOfWebContents(source) == TabStripModel::kNoTab)
+    return;
 
   // Do some synchronous updates.
   if (changed_flags & content::INVALIDATE_TYPE_URL) {
diff --git a/chrome/browser/ui/browser_navigator.cc b/chrome/browser/ui/browser_navigator.cc
index 47bbeba..af6e9cd27 100644
--- a/chrome/browser/ui/browser_navigator.cc
+++ b/chrome/browser/ui/browser_navigator.cc
@@ -19,7 +19,7 @@
 #include "chrome/browser/prefs/incognito_mode_prefs.h"
 #include "chrome/browser/prerender/prerender_manager.h"
 #include "chrome/browser/prerender/prerender_manager_factory.h"
-#include "chrome/browser/previews/previews_lite_page_decider.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_decider.h"
 #include "chrome/browser/profiles/profile.h"
 #include "chrome/browser/renderer_host/chrome_navigation_ui_data.h"
 #include "chrome/browser/signin/signin_promo.h"
@@ -342,7 +342,7 @@
     load_url_params.navigation_ui_data =
         ChromeNavigationUIData::CreateForMainFrameNavigation(
             target_contents, params->disposition,
-            PreviewsLitePageDecider::GeneratePageIdForProfile(
+            PreviewsLitePageRedirectDecider::GeneratePageIdForProfile(
                 GetSourceProfile(params)));
   }
 
diff --git a/chrome/browser/ui/send_tab_to_self/send_tab_to_self_sub_menu_model_unittest.cc b/chrome/browser/ui/send_tab_to_self/send_tab_to_self_sub_menu_model_unittest.cc
index 03bd063..16f6d73c 100644
--- a/chrome/browser/ui/send_tab_to_self/send_tab_to_self_sub_menu_model_unittest.cc
+++ b/chrome/browser/ui/send_tab_to_self/send_tab_to_self_sub_menu_model_unittest.cc
@@ -4,6 +4,7 @@
 
 #include "chrome/browser/ui/send_tab_to_self/send_tab_to_self_sub_menu_model.h"
 
+#include "base/strings/utf_string_conversions.h"
 #include "chrome/browser/sync/send_tab_to_self_sync_service_factory.h"
 #include "chrome/test/base/browser_with_test_window_test.h"
 #include "components/send_tab_to_self/send_tab_to_self_sync_service.h"
diff --git a/chrome/browser/ui/tab_helpers.cc b/chrome/browser/ui/tab_helpers.cc
index 2e5a29fe..2dc559f9 100644
--- a/chrome/browser/ui/tab_helpers.cc
+++ b/chrome/browser/ui/tab_helpers.cc
@@ -45,7 +45,7 @@
 #include "chrome/browser/predictors/loading_predictor_factory.h"
 #include "chrome/browser/predictors/loading_predictor_tab_helper.h"
 #include "chrome/browser/prerender/prerender_tab_helper.h"
-#include "chrome/browser/previews/previews_lite_page_predictor.h"
+#include "chrome/browser/previews/previews_lite_page_redirect_predictor.h"
 #include "chrome/browser/previews/previews_ui_tab_helper.h"
 #include "chrome/browser/previews/resource_loading_hints/resource_loading_hints_web_contents_observer.h"
 #include "chrome/browser/profiles/profile.h"
@@ -243,7 +243,7 @@
       web_contents, base::DefaultTickClock::GetInstance());
   PrefsTabHelper::CreateForWebContents(web_contents);
   prerender::PrerenderTabHelper::CreateForWebContents(web_contents);
-  PreviewsLitePagePredictor::CreateForWebContents(web_contents);
+  PreviewsLitePageRedirectPredictor::CreateForWebContents(web_contents);
   PreviewsUITabHelper::CreateForWebContents(web_contents);
   RecentlyAudibleHelper::CreateForWebContents(web_contents);
   ResourceLoadingHintsWebContentsObserver::CreateForWebContents(web_contents);
diff --git a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java b/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
index d0ef7a4..016da4b5 100644
--- a/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
+++ b/chrome/browser/util/android/java/src/org/chromium/chrome/browser/util/IntentUtils.java
@@ -31,9 +31,6 @@
 public class IntentUtils {
     private static final String TAG = "IntentUtils";
 
-    /** See {@link #isIntentTooLarge(Intent)}. */
-    private static final int MAX_INTENT_SIZE_THRESHOLD = 750000;
-
     /**
      * Just like {@link Intent#hasExtra(String)} but doesn't throw exceptions.
      */
@@ -416,17 +413,6 @@
     }
 
     /**
-     * Determines if an Intent's size is bigger than a reasonable threshold.  Having too many large
-     * transactions in flight simultaneously (including Intents) causes Android to throw a
-     * {@link TransactionTooLargeException}.  According to that class, the limit across all
-     * transactions combined is one megabyte.  Best practice is to keep each individual Intent well
-     * under the limit to avoid this situation.
-     */
-    public static boolean isIntentTooLarge(Intent intent) {
-        return getParceledIntentSize(intent) > MAX_INTENT_SIZE_THRESHOLD;
-    }
-
-    /**
      * Given an exception, check whether it wrapped a {@link TransactionTooLargeException}.  If it
      * does, then log the underlying error.  If not, throw the original exception again.
      *
diff --git a/chrome/common/chrome_content_client.cc b/chrome/common/chrome_content_client.cc
index 82d08c6..27213ba 100644
--- a/chrome/common/chrome_content_client.cc
+++ b/chrome/common/chrome_content_client.cc
@@ -90,18 +90,17 @@
 
 #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
 #include "media/cdm/cdm_paths.h"  // nogncheck
-// Registers Widevine CDM if Widevine is enabled, the Widevine CDM is
-// bundled and not a component. When the Widevine CDM is a component, it is
-// registered in widevine_cdm_component_installer.cc.
-#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && !BUILDFLAG(ENABLE_WIDEVINE_CDM_COMPONENT)
-#define REGISTER_BUNDLED_WIDEVINE_CDM
+#endif
+
+#if BUILDFLAG(BUNDLE_WIDEVINE_CDM)
+#include "base/native_library.h"
+#include "chrome/common/media/cdm_manifest.h"
 #include "third_party/widevine/cdm/widevine_cdm_common.h"  // nogncheck
 // TODO(crbug.com/663554): Needed for WIDEVINE_CDM_VERSION_STRING. Support
 // component updated CDM on all desktop platforms and remove this.
 // This file is In SHARED_INTERMEDIATE_DIR.
 #include "widevine_cdm_version.h"  // nogncheck
 #endif
-#endif  // BUILDFLAG(ENABLE_LIBRARY_CDMS)
 
 #if BUILDFLAG(ENABLE_CDM_HOST_VERIFICATION)
 #include "chrome/common/media/cdm_host_file_path.h"
@@ -341,54 +340,87 @@
 }
 #endif  //  BUILDFLAG(ENABLE_PLUGINS)
 
-#if defined(REGISTER_BUNDLED_WIDEVINE_CDM)
-bool IsWidevineAvailable(base::FilePath* cdm_path,
-                         content::CdmCapability* capability) {
+#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && defined(OS_LINUX)
+// On Linux/ChromeOS we have to preload the CDM since it uses the zygote
+// sandbox. On Windows and Mac, the bundled CDM is handled by the component
+// updater.
+
+// This code checks to see if the Widevine CDM was bundled with Chrome. If one
+// can be found and looks valid, it updates |version| with the version,
+// |cdm_path| with the location of the Widevine CDM library, |capability| with
+// the capabilities of this version. and returns true. Otherwise it returns
+// false, and may or may not have touched the other parameters.
+bool GetBundledWidevine(base::Version* version,
+                        base::FilePath* cdm_path,
+                        content::CdmCapability* capability) {
+  // Check if the Widevine library can be found.
   static enum {
     NOT_CHECKED,
     FOUND,
     NOT_FOUND,
   } widevine_cdm_file_check = NOT_CHECKED;
 
-  if (base::PathService::Get(chrome::FILE_WIDEVINE_CDM, cdm_path)) {
-    if (widevine_cdm_file_check == NOT_CHECKED)
-      widevine_cdm_file_check = base::PathExists(*cdm_path) ? FOUND : NOT_FOUND;
+  // If we've already checked and not found the CDM, no need to try again,
+  // hoping that it shows up.
+  if (widevine_cdm_file_check == NOT_FOUND)
+    return false;
 
-    if (widevine_cdm_file_check == FOUND) {
-      // Add the supported codecs as if they came from the component manifest.
-      // This list must match the CDM that is being bundled with Chrome.
-      capability->video_codecs.push_back(media::VideoCodec::kCodecVP8);
-      capability->video_codecs.push_back(media::VideoCodec::kCodecVP9);
-      capability->video_codecs.push_back(media::VideoCodec::kCodecAV1);
-      // TODO(crbug.com/899403): Update this and tests after Widevine CDM
-      // supports VP9 profile 2.
-      capability->supports_vp9_profile2 = false;
+  base::FilePath install_dir;
+  if (!base::PathService::Get(chrome::DIR_BUNDLED_WIDEVINE_CDM, &install_dir))
+    return false;
+
+#if defined(OS_CHROMEOS)
+  // On ChromeOS the Widevine CDM library is in the directory returned above,
+  // and does not have a manifest.
+  // TODO(crbug.com/971433): Move Widevine CDM to a separate folder so that the
+  // manifest can be included.
+  *cdm_path = install_dir.AppendASCII(
+      base::GetNativeLibraryName(kWidevineCdmLibraryName));
+  if (widevine_cdm_file_check == NOT_CHECKED)
+    widevine_cdm_file_check = base::PathExists(*cdm_path) ? FOUND : NOT_FOUND;
+
+  if (widevine_cdm_file_check != FOUND)
+    return false;
+
+  // As there is no manifest, set |version| and |capability| as if it came from
+  // one. These values must match the CDM that is being bundled with Chrome.
+  *version = base::Version(WIDEVINE_CDM_VERSION_STRING);
+
+  // Add the supported codecs as if they came from the component manifest.
+  capability->video_codecs.push_back(media::VideoCodec::kCodecVP8);
+  capability->video_codecs.push_back(media::VideoCodec::kCodecVP9);
+  capability->video_codecs.push_back(media::VideoCodec::kCodecAV1);
+  // TODO(crbug.com/899403): Update this and tests after Widevine CDM
+  // supports VP9 profile 2.
+  capability->supports_vp9_profile2 = false;
 #if BUILDFLAG(USE_PROPRIETARY_CODECS)
-      capability->video_codecs.push_back(media::VideoCodec::kCodecH264);
+  capability->video_codecs.push_back(media::VideoCodec::kCodecH264);
 #endif  // BUILDFLAG(USE_PROPRIETARY_CODECS)
 
-      // Add the supported encryption schemes as if they came from the
-      // component manifest. This list must match the CDM that is being
-      // bundled with Chrome.
-      capability->encryption_schemes.insert(media::EncryptionMode::kCenc);
-      capability->encryption_schemes.insert(media::EncryptionMode::kCbcs);
+  // Both encryption schemes are supported on ChromeOS.
+  capability->encryption_schemes.insert(media::EncryptionMode::kCenc);
+  capability->encryption_schemes.insert(media::EncryptionMode::kCbcs);
 
-      // Temporary session is always supported.
-      capability->session_types.insert(media::CdmSessionType::kTemporary);
-#if defined(OS_CHROMEOS)
-      // TODO(crbug.com/767941): Push persistent-license support info here once
-      // we check in a new CDM that supports it on Linux.
-      capability->session_types.insert(
-          media::CdmSessionType::kPersistentLicense);
+  // Both temporary and persistent sessions are supported on ChromeOS.
+  capability->session_types.insert(media::CdmSessionType::kTemporary);
+  capability->session_types.insert(media::CdmSessionType::kPersistentLicense);
+  return true;
+#else
+  // On desktop Linux the MANIFEST is bundled with the CDM.
+  *cdm_path =
+      media::GetPlatformSpecificDirectory(install_dir)
+          .AppendASCII(base::GetNativeLibraryName(kWidevineCdmLibraryName));
+  if (widevine_cdm_file_check == NOT_CHECKED)
+    widevine_cdm_file_check = base::PathExists(*cdm_path) ? FOUND : NOT_FOUND;
+
+  if (widevine_cdm_file_check != FOUND)
+    return false;
+
+  auto manifest_path = install_dir.Append(FILE_PATH_LITERAL("manifest.json"));
+  return ParseCdmManifestFromPath(manifest_path, version, capability);
 #endif  // defined(OS_CHROMEOS)
-
-      return true;
-    }
-  }
-
-  return false;
 }
-#endif  // defined(REGISTER_BUNDLED_WIDEVINE_CDM)
+#endif  // BUILDFLAG(BUNDLE_WIDEVINE_CDM) && defined(OS_LINUX)
 
 }  // namespace
 
@@ -513,19 +545,17 @@
     std::vector<content::CdmInfo>* cdms,
     std::vector<media::CdmHostFilePath>* cdm_host_file_paths) {
   if (cdms) {
-#if defined(REGISTER_BUNDLED_WIDEVINE_CDM)
+#if BUILDFLAG(BUNDLE_WIDEVINE_CDM) && defined(OS_LINUX)
+    base::Version version;
     base::FilePath cdm_path;
     content::CdmCapability capability;
-    if (IsWidevineAvailable(&cdm_path, &capability)) {
-      const base::Version version(WIDEVINE_CDM_VERSION_STRING);
-      DCHECK(version.IsValid());
-
+    if (GetBundledWidevine(&version, &cdm_path, &capability)) {
       cdms->push_back(
           content::CdmInfo(kWidevineCdmDisplayName, kWidevineCdmGuid, version,
                            cdm_path, kWidevineCdmFileSystemId,
                            std::move(capability), kWidevineKeySystem, false));
     }
-#endif  // defined(REGISTER_BUNDLED_WIDEVINE_CDM)
+#endif  // BUILDFLAG(BUNDLE_WIDEVINE_CDM) && defined(OS_LINUX)
 
 #if BUILDFLAG(ENABLE_LIBRARY_CDMS)
     // Register Clear Key CDM if specified in command line.
diff --git a/chrome/common/chrome_paths.cc b/chrome/common/chrome_paths.cc
index 5407cea..0929b41 100644
--- a/chrome/common/chrome_paths.cc
+++ b/chrome/common/chrome_paths.cc
@@ -372,15 +372,14 @@
       cur = cur.Append(FILE_PATH_LITERAL("pnacl"));
       break;
 #if BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)
-    // TODO(crbug.com/663554): Remove this after component updated CDM is
-    // supported on Linux and ChromeOS.
-    case chrome::FILE_WIDEVINE_CDM:
+    case chrome::DIR_BUNDLED_WIDEVINE_CDM:
       if (!GetComponentDirectory(&cur))
         return false;
-      cur =
-          cur.Append(
-                 media::GetPlatformSpecificDirectory(kWidevineCdmBaseDirectory))
-              .AppendASCII(base::GetNativeLibraryName(kWidevineCdmLibraryName));
+#if !defined(OS_CHROMEOS)
+      // TODO(crbug.com/971433): Move Widevine CDM to a separate folder on
+      // ChromeOS so that the manifest can be included.
+      cur = cur.AppendASCII(kWidevineCdmBaseDirectory);
+#endif  // !defined(OS_CHROMEOS)
       break;
 #endif  // BUILDFLAG(ENABLE_WIDEVINE) && BUILDFLAG(ENABLE_LIBRARY_CDMS)
     case chrome::FILE_RESOURCES_PACK:  // Falls through.
diff --git a/chrome/common/chrome_paths.h b/chrome/common/chrome_paths.h
index 3258b62e..26f6782 100644
--- a/chrome/common/chrome_paths.h
+++ b/chrome/common/chrome_paths.h
@@ -93,7 +93,8 @@
   DIR_PNACL_BASE,                   // Full path to the base dir for PNaCl.
   DIR_PNACL_COMPONENT,              // Full path to the latest PNaCl version
                                     // (subdir of DIR_PNACL_BASE).
-  FILE_WIDEVINE_CDM,                // Full path to the Widevine CDM.
+  DIR_BUNDLED_WIDEVINE_CDM,         // Full path to the directory containing the
+                                    // bundled Widevine CDM.
   FILE_RESOURCES_PACK,  // Full path to the .pak file containing binary data.
                         // This includes data for internal pages (e.g., html
                         // files and images), unless these resources are
diff --git a/chrome/common/extensions/api/file_manager_private.idl b/chrome/common/extensions/api/file_manager_private.idl
index 4cf25da..4ee179ba 100644
--- a/chrome/common/extensions/api/file_manager_private.idl
+++ b/chrome/common/extensions/api/file_manager_private.idl
@@ -232,8 +232,6 @@
 enum CrostiniEventType {
   enable,
   disable,
-  root_access_allow,
-  root_access_disallow,
   share,
   unshare
 };
diff --git a/chrome/common/extensions/api/users_private.idl b/chrome/common/extensions/api/users_private.idl
index 1acdda3b..6e79d41 100644
--- a/chrome/common/extensions/api/users_private.idl
+++ b/chrome/common/extensions/api/users_private.idl
@@ -41,11 +41,16 @@
   callback ManagedCallback = void (boolean managed);
   callback UserCallback = void (User user);
   callback LoginStatusCallback = void (LoginStatusDict status);
+  callback IsWhiteListedUserCallback = void (boolean found);
 
   interface Functions {
     // Gets a list of the currently whitelisted users.
     static void getWhitelistedUsers(UsersCallback callback);
 
+    // Checks to see if the user is already present as a whitelisted user.
+    static void isWhitelistedUser(DOMString email,
+                                  IsWhiteListedUserCallback callback);
+
     // Adds a new user with the given email to the whitelist.
     // The callback is called with true if the user was added succesfully, or
     // with false if not (e.g. because the user was already present, or the
diff --git a/chrome/common/media/cdm_manifest.cc b/chrome/common/media/cdm_manifest.cc
index 0661f16..77745568 100644
--- a/chrome/common/media/cdm_manifest.cc
+++ b/chrome/common/media/cdm_manifest.cc
@@ -5,17 +5,22 @@
 #include "chrome/common/media/cdm_manifest.h"
 
 #include <stddef.h>
+#include <memory>
 #include <string>
 #include <vector>
 
 #include "base/containers/flat_set.h"
 #include "base/containers/span.h"
+#include "base/files/file_path.h"
+#include "base/json/json_file_value_serializer.h"
 #include "base/logging.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_piece.h"
 #include "base/strings/string_split.h"
 #include "base/values.h"
+#include "base/version.h"
 #include "content/public/common/cdm_info.h"
+#include "extensions/common/manifest_constants.h"
 #include "media/base/content_decryption_module.h"
 #include "media/base/decrypt_config.h"
 #include "media/base/video_codecs.h"
@@ -75,7 +80,9 @@
 // Supports at least VP9 profile 0 and profile 2.
 const char kCdmSupportedCodecVp9[] = "vp09";
 const char kCdmSupportedCodecAv1[] = "av01";
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
 const char kCdmSupportedCodecAvc1[] = "avc1";
+#endif
 
 // The following strings are used to specify supported encryption schemes in
 // the parameter |kCdmSupportedEncryptionSchemesName|.
@@ -168,8 +175,10 @@
       *supports_vp9_profile2 = true;
     } else if (codec == kCdmSupportedCodecAv1) {
       result.push_back(media::VideoCodec::kCodecAV1);
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
     } else if (codec == kCdmSupportedCodecAvc1) {
       result.push_back(media::VideoCodec::kCodecH264);
+#endif
     }
   }
 
@@ -299,6 +308,25 @@
   return true;
 }
 
+bool GetVersion(const base::Value& manifest, base::Version* version) {
+  DCHECK(manifest.is_dict());
+  auto* version_string =
+      manifest.FindStringKey(extensions::manifest_keys::kVersion);
+  if (!version_string) {
+    DLOG(ERROR) << "CDM manifest missing "
+                << extensions::manifest_keys::kVersion;
+    return false;
+  }
+
+  *version = base::Version(*version_string);
+  if (!version->IsValid()) {
+    DLOG(ERROR) << "CDM manifest version " << version_string << " is invalid.";
+    return false;
+  }
+
+  return true;
+}
+
 }  // namespace
 
 bool IsCdmManifestCompatibleWithChrome(const base::Value& manifest) {
@@ -313,10 +341,6 @@
                                    media::IsSupportedCdmHostVersion);
 }
 
-// Returns true if the entries in the manifest can be parsed correctly,
-// false otherwise. Updates |version| and |capability| with the values obtained
-// from the manifest, if they are provided. If this method returns false,
-// |version| and |capability| may or may not be updated.
 bool ParseCdmManifest(const base::Value& manifest,
                       content::CdmCapability* capability) {
   DCHECK(manifest.is_dict());
@@ -327,3 +351,21 @@
          GetSessionTypes(manifest, &capability->session_types) &&
          GetCdmProxyProtocols(manifest, &capability->cdm_proxy_protocols);
 }
+
+bool ParseCdmManifestFromPath(const base::FilePath& manifest_path,
+                              base::Version* version,
+                              content::CdmCapability* capability) {
+  JSONFileValueDeserializer deserializer(manifest_path);
+  int error_code;
+  std::string error_message;
+  std::unique_ptr<base::Value> manifest =
+      deserializer.Deserialize(&error_code, &error_message);
+  if (!manifest || !manifest->is_dict()) {
+    DLOG(ERROR) << "Could not deserialize CDM manifest from " << manifest_path
+                << ". Error: " << error_code << " / " << error_message;
+    return false;
+  }
+
+  return GetVersion(*manifest, version) &&
+         ParseCdmManifest(*manifest, capability);
+}
diff --git a/chrome/common/media/cdm_manifest.h b/chrome/common/media/cdm_manifest.h
index e191d3e4..1b97f5b 100644
--- a/chrome/common/media/cdm_manifest.h
+++ b/chrome/common/media/cdm_manifest.h
@@ -6,7 +6,9 @@
 #define CHROME_COMMON_MEDIA_CDM_MANIFEST_H_
 
 namespace base {
+class FilePath;
 class Value;
+class Version;
 }
 
 namespace content {
@@ -26,4 +28,13 @@
 bool ParseCdmManifest(const base::Value& manifest,
                       content::CdmCapability* capability);
 
+// Reads the file |manifest_path| which is assumed to be a CDM manifest and
+// extracts the necessary information from it to update |version| and
+// |capability|. Returns true on success, false if there are errors in the file.
+// If this method returns false, |version| and |capability| may or may not be
+// updated.
+bool ParseCdmManifestFromPath(const base::FilePath& manifest_path,
+                              base::Version* version,
+                              content::CdmCapability* capability);
+
 #endif  // CHROME_COMMON_MEDIA_CDM_MANIFEST_H_
diff --git a/chrome/common/media/cdm_manifest_unittest.cc b/chrome/common/media/cdm_manifest_unittest.cc
index 24a0df1..04bf8d7 100644
--- a/chrome/common/media/cdm_manifest_unittest.cc
+++ b/chrome/common/media/cdm_manifest_unittest.cc
@@ -9,11 +9,17 @@
 #include <string>
 #include <vector>
 
+#include "base/files/file_path.h"
+#include "base/files/file_util.h"
+#include "base/files/scoped_temp_dir.h"
+#include "base/json/json_file_value_serializer.h"
 #include "base/stl_util.h"
 #include "base/strings/string_number_conversions.h"
 #include "base/strings/string_util.h"
 #include "base/values.h"
+#include "base/version.h"
 #include "content/public/common/cdm_info.h"
+#include "extensions/common/manifest_constants.h"
 #include "media/cdm/api/content_decryption_module.h"
 #include "media/cdm/supported_cdm_versions.h"
 #include "testing/gtest/include/gtest/gtest.h"
@@ -72,7 +78,7 @@
 // Create a default manifest with valid values for all entries.
 base::Value DefaultManifest() {
   base::Value dict(base::Value::Type::DICTIONARY);
-  dict.SetStringKey(kCdmCodecsListName, "vp8,vp9.0,avc1");
+  dict.SetStringKey(kCdmCodecsListName, "vp8,vp9.0,av01");
   dict.SetBoolKey(kCdmPersistentLicenseSupportName, true);
   dict.SetKey(kCdmSupportedEncryptionSchemesName,
               MakeListValue("cenc", "cbcs"));
@@ -100,6 +106,40 @@
   }
 }
 
+void CheckEncryptionSchemes(
+    const base::flat_set<media::EncryptionMode>& actual,
+    const std::vector<media::EncryptionMode>& expected) {
+  EXPECT_EQ(expected.size(), actual.size());
+  for (const auto& encryption_scheme : expected) {
+    EXPECT_TRUE(base::Contains(actual, encryption_scheme));
+  }
+}
+
+void CheckSessionTypes(const base::flat_set<media::CdmSessionType>& actual,
+                       const std::vector<media::CdmSessionType>& expected) {
+  EXPECT_EQ(expected.size(), actual.size());
+  for (const auto& session_type : expected) {
+    EXPECT_TRUE(base::Contains(actual, session_type));
+  }
+}
+
+void CheckProxyProtocols(
+    const base::flat_set<media::CdmProxy::Protocol>& actual,
+    const std::vector<media::CdmProxy::Protocol>& expected) {
+  EXPECT_EQ(expected.size(), actual.size());
+  for (const auto& proxy_protocol : expected) {
+    EXPECT_TRUE(base::Contains(actual, proxy_protocol));
+  }
+}
+
+void WriteManifestToFile(const base::Value& manifest,
+                         const base::FilePath& file_path) {
+  EXPECT_FALSE(base::PathExists(file_path));
+  JSONFileValueSerializer serializer(file_path);
+  EXPECT_TRUE(serializer.Serialize(manifest));
+  EXPECT_TRUE(base::PathExists(file_path));
+}
+
 }  // namespace
 
 TEST(CdmManifestTest, IsCompatibleWithChrome) {
@@ -153,6 +193,29 @@
   auto manifest = DefaultManifest();
   CdmCapability capability;
   EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
+  CheckCodecs(capability.video_codecs,
+              {media::VideoCodec::kCodecVP8, media::VideoCodec::kCodecVP9,
+               media::VideoCodec::kCodecAV1});
+  CheckEncryptionSchemes(
+      capability.encryption_schemes,
+      {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
+  CheckSessionTypes(capability.session_types,
+                    {media::CdmSessionType::kTemporary,
+                     media::CdmSessionType::kPersistentLicense});
+  CheckProxyProtocols(capability.cdm_proxy_protocols,
+                      {media::CdmProxy::Protocol::kIntel});
+}
+
+TEST(CdmManifestTest, EmptyManifest) {
+  base::Value manifest(base::Value::Type::DICTIONARY);
+  CdmCapability capability;
+  EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
+  CheckCodecs(capability.video_codecs, {});
+  CheckEncryptionSchemes(capability.encryption_schemes,
+                         {media::EncryptionMode::kCenc});
+  CheckSessionTypes(capability.session_types,
+                    {media::CdmSessionType::kTemporary});
+  CheckProxyProtocols(capability.cdm_proxy_protocols, {});
 }
 
 TEST(CdmManifestTest, ManifestCodecs) {
@@ -185,30 +248,31 @@
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
     CheckCodecs(capability.video_codecs, {media::VideoCodec::kCodecAV1});
   }
+#if BUILDFLAG(USE_PROPRIETARY_CODECS)
   {
     CdmCapability capability;
     manifest.SetStringKey(kCdmCodecsListName, "avc1");
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
     CheckCodecs(capability.video_codecs, {media::VideoCodec::kCodecH264});
   }
+#endif
   {
-    // Try list of everything.
+    // Try list of everything (except proprietary codecs).
     CdmCapability capability;
-    manifest.SetStringKey(kCdmCodecsListName, "vp8,vp9.0,vp09,av01,avc1");
+    manifest.SetStringKey(kCdmCodecsListName, "vp8,vp9.0,vp09,av01");
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
     // Note that kCodecVP9 is returned twice in the list.
     CheckCodecs(capability.video_codecs,
                 {media::VideoCodec::kCodecVP8, media::VideoCodec::kCodecVP9,
-                 media::VideoCodec::kCodecVP9, media::VideoCodec::kCodecAV1,
-                 media::VideoCodec::kCodecH264});
+                 media::VideoCodec::kCodecVP9, media::VideoCodec::kCodecAV1});
     EXPECT_TRUE(capability.supports_vp9_profile2);
   }
   {
     // Note that invalid codec values are simply skipped.
     CdmCapability capability;
-    manifest.SetStringKey(kCdmCodecsListName, "invalid,avc1");
+    manifest.SetStringKey(kCdmCodecsListName, "invalid,av01");
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    CheckCodecs(capability.video_codecs, {media::VideoCodec::kCodecH264});
+    CheckCodecs(capability.video_codecs, {media::VideoCodec::kCodecAV1});
   }
   {
     // Wrong types are an error.
@@ -233,21 +297,15 @@
     CdmCapability capability;
     manifest.SetKey(kCdmSupportedEncryptionSchemesName, MakeListValue("cenc"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.encryption_schemes.size(), 1u);
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCenc));
-    EXPECT_FALSE(base::Contains(capability.encryption_schemes,
-                                media::EncryptionMode::kCbcs));
+    CheckEncryptionSchemes(capability.encryption_schemes,
+                           {media::EncryptionMode::kCenc});
   }
   {
     CdmCapability capability;
     manifest.SetKey(kCdmSupportedEncryptionSchemesName, MakeListValue("cbcs"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.encryption_schemes.size(), 1u);
-    EXPECT_FALSE(base::Contains(capability.encryption_schemes,
-                                media::EncryptionMode::kCenc));
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCbcs));
+    CheckEncryptionSchemes(capability.encryption_schemes,
+                           {media::EncryptionMode::kCbcs});
   }
   {
     // Try multiple valid entries.
@@ -255,11 +313,9 @@
     manifest.SetKey(kCdmSupportedEncryptionSchemesName,
                     MakeListValue("cenc", "cbcs"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.encryption_schemes.size(), 2u);
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCenc));
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCbcs));
+    CheckEncryptionSchemes(
+        capability.encryption_schemes,
+        {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
   }
   {
     // Invalid encryption schemes are ignored. However, if value specified then
@@ -274,10 +330,8 @@
     manifest.SetKey(kCdmSupportedEncryptionSchemesName,
                     MakeListValue("invalid", "cenc"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCenc));
-    EXPECT_FALSE(base::Contains(capability.encryption_schemes,
-                                media::EncryptionMode::kCbcs));
+    CheckEncryptionSchemes(capability.encryption_schemes,
+                           {media::EncryptionMode::kCenc});
   }
   {
     // Wrong types are an error.
@@ -290,10 +344,8 @@
     CdmCapability capability;
     EXPECT_TRUE(manifest.RemoveKey(kCdmSupportedEncryptionSchemesName));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_TRUE(base::Contains(capability.encryption_schemes,
-                               media::EncryptionMode::kCenc));
-    EXPECT_FALSE(base::Contains(capability.encryption_schemes,
-                                media::EncryptionMode::kCbcs));
+    CheckEncryptionSchemes(capability.encryption_schemes,
+                           {media::EncryptionMode::kCenc});
   }
 }
 
@@ -305,22 +357,17 @@
     CdmCapability capability;
     manifest.SetBoolKey(kCdmPersistentLicenseSupportName, false);
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.session_types.size(), 1u);
-    EXPECT_TRUE(base::Contains(capability.session_types,
-                               media::CdmSessionType::kTemporary));
-    EXPECT_FALSE(base::Contains(capability.session_types,
-                                media::CdmSessionType::kPersistentLicense));
+    CheckSessionTypes(capability.session_types,
+                      {media::CdmSessionType::kTemporary});
   }
   {
     // Try true (persistent license is supported).
     CdmCapability capability;
     manifest.SetBoolKey(kCdmPersistentLicenseSupportName, true);
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.session_types.size(), 2u);
-    EXPECT_TRUE(base::Contains(capability.session_types,
-                               media::CdmSessionType::kTemporary));
-    EXPECT_TRUE(base::Contains(capability.session_types,
-                               media::CdmSessionType::kPersistentLicense));
+    CheckSessionTypes(capability.session_types,
+                      {media::CdmSessionType::kTemporary,
+                       media::CdmSessionType::kPersistentLicense});
   }
   {
     // Wrong types are an error.
@@ -333,10 +380,8 @@
     CdmCapability capability;
     EXPECT_TRUE(manifest.RemoveKey(kCdmPersistentLicenseSupportName));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_TRUE(base::Contains(capability.session_types,
-                               media::CdmSessionType::kTemporary));
-    EXPECT_FALSE(base::Contains(capability.session_types,
-                                media::CdmSessionType::kPersistentLicense));
+    CheckSessionTypes(capability.session_types,
+                      {media::CdmSessionType::kTemporary});
   }
 }
 
@@ -348,9 +393,8 @@
     CdmCapability capability;
     manifest.SetKey(kCdmSupportedCdmProxyProtocolsName, MakeListValue("intel"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.cdm_proxy_protocols.size(), 1u);
-    EXPECT_TRUE(base::Contains(capability.cdm_proxy_protocols,
-                               media::CdmProxy::Protocol::kIntel));
+    CheckProxyProtocols(capability.cdm_proxy_protocols,
+                        {media::CdmProxy::Protocol::kIntel});
   }
   {
     // Unrecognized values are ignored.
@@ -358,9 +402,8 @@
     manifest.SetKey(kCdmSupportedCdmProxyProtocolsName,
                     MakeListValue("unknown", "intel"));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.cdm_proxy_protocols.size(), 1u);
-    EXPECT_TRUE(base::Contains(capability.cdm_proxy_protocols,
-                               media::CdmProxy::Protocol::kIntel));
+    CheckProxyProtocols(capability.cdm_proxy_protocols,
+                        {media::CdmProxy::Protocol::kIntel});
   }
   {
     // Wrong types are an error.
@@ -373,6 +416,120 @@
     CdmCapability capability;
     EXPECT_TRUE(manifest.RemoveKey(kCdmSupportedCdmProxyProtocolsName));
     EXPECT_TRUE(ParseCdmManifest(manifest, &capability));
-    EXPECT_EQ(capability.cdm_proxy_protocols.size(), 0u);
+    CheckProxyProtocols(capability.cdm_proxy_protocols, {});
   }
 }
+
+TEST(CdmManifestTest, FileManifest) {
+  const char kVersion[] = "1.2.3.4";
+
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  // Manifests read from a file also need a version.
+  auto manifest = DefaultManifest();
+  manifest.SetStringKey(extensions::manifest_keys::kVersion, kVersion);
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_TRUE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+  EXPECT_TRUE(version.IsValid());
+  EXPECT_EQ(version.GetString(), kVersion);
+  CheckCodecs(capability.video_codecs,
+              {media::VideoCodec::kCodecVP8, media::VideoCodec::kCodecVP9,
+               media::VideoCodec::kCodecAV1});
+  CheckEncryptionSchemes(
+      capability.encryption_schemes,
+      {media::EncryptionMode::kCenc, media::EncryptionMode::kCbcs});
+  CheckSessionTypes(capability.session_types,
+                    {media::CdmSessionType::kTemporary,
+                     media::CdmSessionType::kPersistentLicense});
+  CheckProxyProtocols(capability.cdm_proxy_protocols,
+                      {media::CdmProxy::Protocol::kIntel});
+}
+
+TEST(CdmManifestTest, FileManifestNoVersion) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  auto manifest = DefaultManifest();
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_FALSE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+}
+
+TEST(CdmManifestTest, FileManifestBadVersion) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  auto manifest = DefaultManifest();
+  manifest.SetStringKey(extensions::manifest_keys::kVersion, "bad version");
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_FALSE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+}
+
+TEST(CdmManifestTest, FileManifestDoesNotExist) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_FALSE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+}
+
+TEST(CdmManifestTest, FileManifestEmpty) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  base::Value manifest(base::Value::Type::DICTIONARY);
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_FALSE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+}
+
+TEST(CdmManifestTest, FileManifestLite) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  // Only a version is required in the manifest to parse correctly.
+  base::Value manifest(base::Value::Type::DICTIONARY);
+  manifest.SetStringKey(extensions::manifest_keys::kVersion, "1.2.3.4");
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_TRUE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+  CheckCodecs(capability.video_codecs, {});
+  CheckEncryptionSchemes(capability.encryption_schemes,
+                         {media::EncryptionMode::kCenc});
+  CheckSessionTypes(capability.session_types,
+                    {media::CdmSessionType::kTemporary});
+  CheckProxyProtocols(capability.cdm_proxy_protocols, {});
+}
+
+TEST(CdmManifestTest, FileManifestNotDictionary) {
+  base::ScopedTempDir temp_dir;
+  ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
+  auto manifest_path = temp_dir.GetPath().AppendASCII("manifest.json");
+
+  base::Value manifest("not a dictionary");
+  WriteManifestToFile(manifest, manifest_path);
+
+  base::Version version;
+  CdmCapability capability;
+  EXPECT_FALSE(ParseCdmManifestFromPath(manifest_path, &version, &capability));
+}
diff --git a/chrome/installer/util/shell_util.cc b/chrome/installer/util/shell_util.cc
index 64019ac..23419eb 100644
--- a/chrome/installer/util/shell_util.cc
+++ b/chrome/installer/util/shell_util.cc
@@ -2386,6 +2386,7 @@
 bool ShellUtil::AddFileAssociations(
     const base::string16& prog_id,
     const base::CommandLine& command_line,
+    const base::string16& application_name,
     const base::string16& file_type_name,
     const base::FilePath& icon_path,
     const std::set<base::string16>& file_extensions) {
@@ -2394,6 +2395,7 @@
   // Create a class for this app.
   ApplicationInfo app_info;
   app_info.prog_id = prog_id;
+  app_info.application_name = application_name;
   app_info.file_type_name = file_type_name;
   app_info.file_type_icon_path = icon_path;
   app_info.file_type_icon_index = 0;
diff --git a/chrome/installer/util/shell_util.h b/chrome/installer/util/shell_util.h
index 8855e6f..e46226f 100644
--- a/chrome/installer/util/shell_util.h
+++ b/chrome/installer/util/shell_util.h
@@ -628,6 +628,8 @@
   // |command_line| is the command to execute when opening a file via this
   // association. It should contain "%1" (to tell Windows to pass the filename
   // as an argument).
+  // |application_name| is the friendly name displayed for this application in
+  // the Open With menu.
   // |file_type_name| and |icon_path| are the friendly name, and the path of the
   // icon, respectively, that will be used for files of these types when
   // associated with this application by default. (They are NOT the name/icon
@@ -638,6 +640,7 @@
   static bool AddFileAssociations(
       const base::string16& prog_id,
       const base::CommandLine& command_line,
+      const base::string16& application_name,
       const base::string16& file_type_name,
       const base::FilePath& icon_path,
       const std::set<base::string16>& file_extensions);
diff --git a/chrome/installer/util/shell_util_unittest.cc b/chrome/installer/util/shell_util_unittest.cc
index 07ab2eb..ef07d93 100644
--- a/chrome/installer/util/shell_util_unittest.cc
+++ b/chrome/installer/util/shell_util_unittest.cc
@@ -41,6 +41,7 @@
 // For registry tests.
 const wchar_t kTestProgid[] = L"TestApp";
 const wchar_t kTestOpenCommand[] = L"C:\\test.exe";
+const wchar_t kTestApplicationName[] = L"Test Application";
 const wchar_t kTestFileTypeName[] = L"Test File Type";
 const wchar_t kTestIconPath[] = L"D:\\test.ico";
 const wchar_t* kTestFileExtensions[] = {
@@ -832,11 +833,9 @@
 
 TEST_F(ShellUtilRegistryTest, AddFileAssociations) {
   // Create file associations.
-  EXPECT_TRUE(ShellUtil::AddFileAssociations(kTestProgid,
-                                             OpenCommand(),
-                                             kTestFileTypeName,
-                                             base::FilePath(kTestIconPath),
-                                             FileExtensions()));
+  EXPECT_TRUE(ShellUtil::AddFileAssociations(
+      kTestProgid, OpenCommand(), kTestApplicationName, kTestFileTypeName,
+      base::FilePath(kTestIconPath), FileExtensions()));
 
   // Ensure that the registry keys have been correctly set.
   base::win::RegKey key;
@@ -861,6 +860,15 @@
   EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(L"", &value));
   EXPECT_EQ(L"\"C:\\test.exe\" \"%1\"", value);
 
+  // The Application subkey and values are only required by Windows 8 and later.
+  if (base::win::GetVersion() >= base::win::Version::WIN8) {
+    ASSERT_EQ(ERROR_SUCCESS,
+              key.Open(HKEY_CURRENT_USER,
+                       L"Software\\Classes\\TestApp\\Application", KEY_READ));
+    EXPECT_EQ(ERROR_SUCCESS, key.ReadValue(L"ApplicationName", &value));
+    EXPECT_EQ(L"Test Application", value);
+  }
+
   // .test1 should be default-associated with our test app.
   ASSERT_EQ(
       ERROR_SUCCESS,
@@ -893,11 +901,9 @@
 
 TEST_F(ShellUtilRegistryTest, DeleteFileAssociations) {
   // Create file associations.
-  EXPECT_TRUE(ShellUtil::AddFileAssociations(kTestProgid,
-                                             OpenCommand(),
-                                             kTestFileTypeName,
-                                             base::FilePath(kTestIconPath),
-                                             FileExtensions()));
+  EXPECT_TRUE(ShellUtil::AddFileAssociations(
+      kTestProgid, OpenCommand(), kTestApplicationName, kTestFileTypeName,
+      base::FilePath(kTestIconPath), FileExtensions()));
 
   // Delete them.
   EXPECT_TRUE(ShellUtil::DeleteFileAssociations(kTestProgid));
diff --git a/chrome/test/BUILD.gn b/chrome/test/BUILD.gn
index 96c58a1..fbf6a99 100644
--- a/chrome/test/BUILD.gn
+++ b/chrome/test/BUILD.gn
@@ -1059,7 +1059,7 @@
       "../browser/previews/hints_fetcher_browsertest.cc",
       "../browser/previews/lazyload_browsertest.cc",
       "../browser/previews/previews_browsertest.cc",
-      "../browser/previews/previews_lite_page_browsertest.cc",
+      "../browser/previews/previews_lite_page_redirect_browsertest.cc",
       "../browser/previews/previews_service_browser_test.cc",
       "../browser/previews/resource_loading_hints/resource_loading_hints_browsertest.cc",
       "../browser/process_singleton_browsertest.cc",
@@ -3167,10 +3167,10 @@
     "../browser/prerender/prerender_unittest.cc",
     "../browser/prerender/prerender_util_unittest.cc",
     "../browser/previews/previews_content_util_unittest.cc",
-    "../browser/previews/previews_lite_page_decider_unittest.cc",
     "../browser/previews/previews_lite_page_infobar_delegate_unittest.cc",
-    "../browser/previews/previews_lite_page_predictor_unittest.cc",
-    "../browser/previews/previews_lite_page_url_loader_interceptor_unittest.cc",
+    "../browser/previews/previews_lite_page_redirect_decider_unittest.cc",
+    "../browser/previews/previews_lite_page_redirect_predictor_unittest.cc",
+    "../browser/previews/previews_lite_page_redirect_url_loader_interceptor_unittest.cc",
     "../browser/previews/previews_offline_helper_unittest.cc",
     "../browser/previews/previews_service_render_view_unittest.cc",
     "../browser/previews/previews_service_unittest.cc",
diff --git a/chrome/test/data/extensions/api_test/users_private/test.js b/chrome/test/data/extensions/api_test/users_private/test.js
index 82a1fc0..d86b5ae 100644
--- a/chrome/test/data/extensions/api_test/users_private/test.js
+++ b/chrome/test/data/extensions/api_test/users_private/test.js
@@ -67,6 +67,36 @@
 
   },
 
+  function isWhitelistedUser() {
+    chrome.usersPrivate.isWhitelistedUser(
+      kEmail1,
+      function(result) {
+        chrome.test.assertFalse(result);
+
+        chrome.usersPrivate.addWhitelistedUser(
+          kEmail2,
+          function(result) {
+            callbackResult(result);
+
+            // We never added kEmail1 so this should return false.
+            chrome.usersPrivate.isWhitelistedUser(
+              kEmail1,
+              function(result) {
+                chrome.test.assertFalse(result);
+
+                chrome.usersPrivate.isWhitelistedUser(
+                  kEmail2,
+                  function(user) {
+                    chrome.test.assertTrue(user);
+                    chrome.test.succeed();
+                  });
+              });
+          });
+      });
+
+
+  },
+
   function isOwner() {
     chrome.usersPrivate.getCurrentUser(function(user) {
       // Since we are testing with --stub-cros-settings this should be true.
diff --git a/chrome/test/data/webui/settings/chromeos/android_apps_page_test.js b/chrome/test/data/webui/settings/chromeos/android_apps_page_test.js
index 20e9f19..21ed129 100644
--- a/chrome/test/data/webui/settings/chromeos/android_apps_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/android_apps_page_test.js
@@ -36,10 +36,6 @@
     androidAppsPage.remove();
   });
 
-  teardown(function() {
-    androidAppsPage.remove();
-  });
-
   suite('Main Page', function() {
     setup(function() {
       androidAppsPage.havePlayStoreApp = true;
diff --git a/chrome/test/data/webui/settings/chromeos/apps_page_test.js b/chrome/test/data/webui/settings/chromeos/apps_page_test.js
index 4ab8485..42f84338 100644
--- a/chrome/test/data/webui/settings/chromeos/apps_page_test.js
+++ b/chrome/test/data/webui/settings/chromeos/apps_page_test.js
@@ -8,18 +8,10 @@
 /** @type {?TestAndroidAppsBrowserProxy} */
 let androidAppsBrowserProxy = null;
 
-const setAndroidAppsState = function(playStoreEnabled, settingsAppAvailable) {
-  const appsInfo = {
-    playStoreEnabled: playStoreEnabled,
-    settingsAppAvailable: settingsAppAvailable,
-  };
-  appsPage.androidAppsInfo = appsInfo;
-  appsPage.showAndroidApps = true;
-  Polymer.dom.flush();
-};
-
 suite('AppsPageTests', function() {
   setup(function() {
+    androidAppsBrowserProxy = new TestAndroidAppsBrowserProxy();
+    settings.AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy;
     PolymerTest.clearBody();
     appsPage = document.createElement('os-settings-apps-page');
     document.body.appendChild(appsPage);
@@ -28,6 +20,7 @@
 
   teardown(function() {
     appsPage.remove();
+    appsPage = null;
   });
 
   suite('Page Combinations', function() {
@@ -75,31 +68,20 @@
       assertTrue(AndroidAppsShown());
     });
   });
-});
-
-// Changes to this suite should be reflected in android_apps_page_test.js
-suite('AndroidAppsDetailPageTests', function() {
-  setup(function() {
-    androidAppsBrowserProxy = new TestAndroidAppsBrowserProxy();
-    settings.AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy;
-    PolymerTest.clearBody();
-    appsPage = document.createElement('os-settings-apps-page');
-    document.body.appendChild(appsPage);
-    testing.Test.disableAnimationsAndTransitions();
-  });
-
-  teardown(function() {
-    appsPage.remove();
-  });
 
   suite('Main Page', function() {
     setup(function() {
+      appsPage.showAndroidApps = true;
       appsPage.havePlayStoreApp = true;
       appsPage.prefs = {arc: {enabled: {value: false}}};
-      setAndroidAppsState(false, false);
+      appsPage.androidAppsInfo = {
+        playStoreEnabled: false,
+        settingsAppAvailable: false,
+      };
+      Polymer.dom.flush();
     });
 
-    test('Enable', function() {
+    test('Clicking enable button enables ARC', function() {
       const button = appsPage.$$('#enable');
       assertTrue(!!button);
       assertFalse(!!appsPage.$$('.subpage-arrow'));
@@ -108,45 +90,40 @@
       Polymer.dom.flush();
       assertTrue(appsPage.prefs.arc.enabled.value);
 
-      setAndroidAppsState(true, false);
+      appsPage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: false,
+      };
+      Polymer.dom.flush();
       assertTrue(!!appsPage.$$('.subpage-arrow'));
     });
+
+    // TODO(crbug.com/1006662): Test that setting playStoreEnabled to false
+    // navigates back to the main apps section.
   });
 
-  // TODO(crbug.com/1006662): Fix test suite.
-  suite.skip('SubPage', function() {
-    let subpage;
-
-    function flushAsync() {
-      Polymer.dom.flush();
-      return new Promise(resolve => {
-        appsPage.async(resolve);
-      });
-    }
-
-    /**
-     * Returns a new promise that resolves after a window 'popstate' event.
-     * @return {!Promise}
-     */
-    function whenPopState() {
-      return new Promise(function(resolve) {
-        window.addEventListener('popstate', function callback() {
-          window.removeEventListener('popstate', callback);
-          resolve();
-        });
-      });
-    }
+  suite('Android apps subpage', function() {
+    let subpage = null;
 
     setup(function() {
-      appsPage.havePlayStoreApp = true;
-      appsPage.prefs = {arc: {enabled: {value: true}}};
-      setAndroidAppsState(true, false);
-      settings.navigateTo(settings.routes.ANDROID_APPS);
-      appsPage.$$('#android-apps').click();
-      return flushAsync().then(() => {
-        subpage = appsPage.$$('settings-android-apps-subpage');
-        assertTrue(!!subpage);
-      });
+      androidAppsBrowserProxy = new TestAndroidAppsBrowserProxy();
+      settings.AndroidAppsBrowserProxyImpl.instance_ = androidAppsBrowserProxy;
+      PolymerTest.clearBody();
+      subpage = document.createElement('settings-android-apps-subpage');
+      document.body.appendChild(subpage);
+      testing.Test.disableAnimationsAndTransitions();
+
+      subpage.prefs = {arc: {enabled: {value: true}}};
+      subpage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: false,
+      };
+      Polymer.dom.flush();
+    });
+
+    teardown(function() {
+      subpage.remove();
+      subpage = null;
     });
 
     test('Sanity', function() {
@@ -156,14 +133,27 @@
 
     test('ManageAppsUpdate', function() {
       assertTrue(!subpage.$$('#manageApps'));
-      setAndroidAppsState(true, true);
+      subpage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: true,
+      };
+      Polymer.dom.flush();
       assertTrue(!!subpage.$$('#manageApps'));
-      setAndroidAppsState(true, false);
+
+      subpage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: false,
+      };
+      Polymer.dom.flush();
       assertTrue(!subpage.$$('#manageApps'));
     });
 
     test('ManageAppsOpenRequest', function() {
-      setAndroidAppsState(true, true);
+      subpage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: true,
+      };
+      Polymer.dom.flush();
       const button = subpage.$$('#manageApps');
       assertTrue(!!button);
       const promise =
@@ -187,23 +177,8 @@
       dialog.close();
     });
 
-    test('HideOnDisable', function() {
-      assertEquals(
-          settings.getCurrentRoute(), settings.routes.ANDROID_APPS_DETAILS);
-      setAndroidAppsState(false, false);
-      return whenPopState().then(function() {
-        assertEquals(settings.getCurrentRoute(), settings.routes.ANDROID_APPS);
-      });
-    });
-  });
-
-  // TODO(crbug.com/1006662): Fix test suite.
-  suite.skip('Enforced', function() {
-    let subpage;
-
-    setup(function() {
-      appsPage.havePlayStoreApp = true;
-      appsPage.prefs = {
+    test('ARC enabled by policy', function() {
+      subpage.prefs = {
         arc: {
           enabled: {
             value: true,
@@ -211,34 +186,25 @@
           }
         }
       };
-      setAndroidAppsState(true, true);
-      assertTrue(!!settings.routes.ANDROID_APPS_DETAILS);
-      appsPage.$$('#android-apps').click();
+      subpage.androidAppsInfo = {
+        playStoreEnabled: true,
+        settingsAppAvailable: true,
+      };
       Polymer.dom.flush();
-      subpage = appsPage.$$('settings-android-apps-subpage');
-      assertTrue(!!subpage);
-    });
 
-    test('Sanity', function(done) {
-      Polymer.dom.flush();
       assertFalse(!!subpage.$$('#remove'));
       assertTrue(!!subpage.$$('#manageApps'));
     });
-  });
 
-  suite('NoPlayStore', function() {
-    setup(function() {
-      appsPage.havePlayStoreApp = false;
-      appsPage.prefs = {arc: {enabled: {value: true}}};
-      setAndroidAppsState(true, true);
-    });
+    test('Can open app settings without Play Store', function() {
+      subpage.prefs = {arc: {enabled: {value: true}}};
+      subpage.androidAppsInfo = {
+        playStoreEnabled: false,
+        settingsAppAvailable: true,
+      };
+      Polymer.dom.flush();
 
-    test('Sanity', function() {
-      assertTrue(!!appsPage.$$('#manageApps'));
-    });
-
-    test('ManageAppsOpenRequest', function() {
-      const button = appsPage.$$('#manageApps');
+      const button = subpage.$$('#manageApps');
       assertTrue(!!button);
       const promise =
           androidAppsBrowserProxy.whenCalled('showAndroidAppsSettings');
diff --git a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
index 8612521..ce06f70 100644
--- a/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
+++ b/chrome/test/data/webui/settings/chromeos/os_settings_browsertest.js
@@ -116,31 +116,7 @@
   mocha.run();
 });
 
-// Tests for the Android App section in Google Play Store.
-// eslint-disable-next-line no-var
-var OSSettingsAndroidAppsPageTest = class extends OSSettingsBrowserTest {
-  /** @override */
-  get browsePreload() {
-    return super.browsePreload + 'android_apps_page/android_apps_page.html';
-  }
-
-  /** @override */
-  get extraLibraries() {
-    return super.extraLibraries.concat([
-      '//ui/webui/resources/js/promise_resolver.js',
-      BROWSER_SETTINGS_PATH + '../test_browser_proxy.js',
-      BROWSER_SETTINGS_PATH + 'chromeos/test_android_apps_browser_proxy.js',
-      'android_apps_page_test.js',
-    ]);
-  }
-};
-
-// Disabled due to flakiness on linux-chromeos-rel
-TEST_F('OSSettingsAndroidAppsPageTest', 'DISABLED_AllJsTests', () => {
-  mocha.run();
-});
-
-// Tests for the Android App section in Google Play Store.
+// Tests for the Apps section (combines Chrome and Android apps).
 // eslint-disable-next-line no-var
 var OSSettingsAppsPageTest = class extends OSSettingsBrowserTest {
   /** @override */
diff --git a/chromecast/device/bluetooth/le/le_scan_manager.h b/chromecast/device/bluetooth/le/le_scan_manager.h
index df69674..20e18ae 100644
--- a/chromecast/device/bluetooth/le/le_scan_manager.h
+++ b/chromecast/device/bluetooth/le/le_scan_manager.h
@@ -63,6 +63,12 @@
 
   virtual void ClearScanResults() = 0;
 
+  virtual void PauseScan() {}
+
+  virtual void RestartScan() {}
+
+  virtual void SetScanParameters(int scan_interval_ms, int scan_window_ms) {}
+
  protected:
   LeScanManager() = default;
   virtual ~LeScanManager() = default;
diff --git a/chromecast/device/bluetooth/le/le_scan_manager_impl.cc b/chromecast/device/bluetooth/le/le_scan_manager_impl.cc
index 6122017f..fc2af72 100644
--- a/chromecast/device/bluetooth/le/le_scan_manager_impl.cc
+++ b/chromecast/device/bluetooth/le/le_scan_manager_impl.cc
@@ -117,6 +117,7 @@
 void LeScanManagerImpl::PauseScan() {
   MAKE_SURE_IO_THREAD(PauseScan);
   if (scan_handle_ids_.empty()) {
+    LOG(ERROR) << "Can't pause scan, no scan handle";
     return;
   }
 
@@ -128,6 +129,7 @@
 void LeScanManagerImpl::RestartScan() {
   MAKE_SURE_IO_THREAD(RestartScan);
   if (scan_handle_ids_.empty()) {
+    LOG(ERROR) << "Can't restart scan, no scan handle";
     return;
   }
 
@@ -136,6 +138,18 @@
   }
 }
 
+void LeScanManagerImpl::SetScanParameters(int scan_interval_ms,
+                                          int scan_window_ms) {
+  MAKE_SURE_IO_THREAD(SetScanParameters, scan_interval_ms, scan_window_ms);
+
+  if (!le_scanner_->SetScanParameters(scan_interval_ms, scan_window_ms)) {
+    LOG(ERROR) << "Failed to set scan parameters";
+  }
+
+  LOG(INFO) << __func__ << " scan_interval: " << scan_interval_ms
+            << "ms scan_window: " << scan_window_ms << "ms";
+}
+
 void LeScanManagerImpl::OnScanResult(
     const bluetooth_v2_shlib::LeScanner::ScanResult& scan_result_shlib) {
   LeScanResult scan_result;
diff --git a/chromecast/device/bluetooth/le/le_scan_manager_impl.h b/chromecast/device/bluetooth/le/le_scan_manager_impl.h
index 5198183..8531ce9 100644
--- a/chromecast/device/bluetooth/le/le_scan_manager_impl.h
+++ b/chromecast/device/bluetooth/le/le_scan_manager_impl.h
@@ -42,9 +42,9 @@
       GetScanResultsCallback cb,
       base::Optional<ScanFilter> service_uuid = base::nullopt) override;
   void ClearScanResults() override;
-
-  void PauseScan();
-  void RestartScan();
+  void PauseScan() override;
+  void RestartScan() override;
+  void SetScanParameters(int scan_interval_ms, int scan_window_ms) override;
 
  private:
   class ScanHandleImpl;
diff --git a/chromecast/device/bluetooth/shlib/le_scanner.h b/chromecast/device/bluetooth/shlib/le_scanner.h
index fe3e61e..6af1534b 100644
--- a/chromecast/device/bluetooth/shlib/le_scanner.h
+++ b/chromecast/device/bluetooth/shlib/le_scanner.h
@@ -17,6 +17,7 @@
   virtual void SetDelegate(LeScanner::Delegate* delegate) = 0;
   virtual bool StartScan() = 0;
   virtual bool StopScan() = 0;
+  virtual bool SetScanParameters(int scan_interval_ms, int scan_window_ms) = 0;
 };
 
 }  // namespace bluetooth_v2_shlib
diff --git a/chromecast/device/bluetooth/shlib/mock_le_scanner.h b/chromecast/device/bluetooth/shlib/mock_le_scanner.h
index 64076fb..e58197d 100644
--- a/chromecast/device/bluetooth/shlib/mock_le_scanner.h
+++ b/chromecast/device/bluetooth/shlib/mock_le_scanner.h
@@ -19,6 +19,7 @@
   MOCK_METHOD1(SetDelegate, void(LeScanner::Delegate* delegate));
   MOCK_METHOD0(StartScan, bool());
   MOCK_METHOD0(StopScan, bool());
+  MOCK_METHOD2(SetScanParameters, bool(int, int));
 };
 
 inline MockLeScanner::MockLeScanner() = default;
diff --git a/chromecast/public/bluetooth/le_scanner.h b/chromecast/public/bluetooth/le_scanner.h
index 2e58e305..5ce5de9 100644
--- a/chromecast/public/bluetooth/le_scanner.h
+++ b/chromecast/public/bluetooth/le_scanner.h
@@ -41,6 +41,9 @@
 
   static bool StartScan();
   static bool StopScan();
+
+  static bool SetScanParameters(int scan_interval_ms, int scan_window_ms)
+      __attribute__((__weak__));
 };
 
 inline LeScanner::ScanResult::ScanResult() = default;
diff --git a/chromeos/resources/media_app_resources.grdp b/chromeos/resources/media_app_resources.grdp
index e912f82..e604bc30a 100644
--- a/chromeos/resources/media_app_resources.grdp
+++ b/chromeos/resources/media_app_resources.grdp
@@ -9,13 +9,13 @@
   <if expr="enable_cros_media_app">
     <then>
       <include name="IDR_MEDIA_APP_APP_JS"
-          file="../components/media_app_ui/resources/app/js/app_main.js"
+          file="../components/media_app_ui/resources/app/app/js/app_main.js"
           type="BINDATA" />
       <include name="IDR_MEDIA_APP_IMAGE_HANDLER_MODULE_JS"
-          file="../components/media_app_ui/resources/app/js/app_image_handler_module.js"
+          file="../components/media_app_ui/resources/app/app/js/app_image_handler_module.js"
           type="BINDATA" />
       <include name="IDR_MEDIA_APP_DROP_TARGET_MODULE_JS"
-          file="../components/media_app_ui/resources/app/js/app_drop_target_module.js"
+          file="../components/media_app_ui/resources/app/app/js/app_drop_target_module.js"
           type="BINDATA" />
     </then>
     <else>
diff --git a/chromeos/services/assistant/assistant_manager_service_impl.cc b/chromeos/services/assistant/assistant_manager_service_impl.cc
index 6e33f4b..845704f 100644
--- a/chromeos/services/assistant/assistant_manager_service_impl.cc
+++ b/chromeos/services/assistant/assistant_manager_service_impl.cc
@@ -665,10 +665,13 @@
                      interaction);
   mojom::AndroidAppInfoPtr app_info_ptr = mojom::AndroidAppInfo::New();
   app_info_ptr->package_name = app_info.package_name;
-  device_actions()->OpenAndroidApp(
-      std::move(app_info_ptr),
-      base::BindOnce(&AssistantManagerServiceImpl::HandleOpenAndroidAppResponse,
-                     weak_factory_.GetWeakPtr(), interaction));
+  for (auto& it : interaction_subscribers_) {
+    it->OnOpenAppResponse(
+        mojo::Clone(app_info_ptr),
+        base::BindOnce(
+            &AssistantManagerServiceImpl::HandleOpenAndroidAppResponse,
+            weak_factory_.GetWeakPtr(), interaction));
+  }
 }
 
 void AssistantManagerServiceImpl::OnVerifyAndroidApp(
@@ -704,11 +707,13 @@
       app_info_ptr->intent = url;
     }
   }
-  device_actions()->OpenAndroidApp(
-      std::move(app_info_ptr),
-      base::BindOnce(
-          &AssistantManagerServiceImpl::HandleLaunchMediaIntentResponse,
-          weak_factory_.GetWeakPtr()));
+  for (auto& it : interaction_subscribers_) {
+    it->OnOpenAppResponse(
+        mojo::Clone(app_info_ptr),
+        base::BindOnce(
+            &AssistantManagerServiceImpl::HandleLaunchMediaIntentResponse,
+            weak_factory_.GetWeakPtr()));
+  }
 }
 
 void AssistantManagerServiceImpl::OnPlayMedia(
diff --git a/chromeos/services/assistant/public/mojom/assistant.mojom b/chromeos/services/assistant/public/mojom/assistant.mojom
index 3a31331..d8be54c 100644
--- a/chromeos/services/assistant/public/mojom/assistant.mojom
+++ b/chromeos/services/assistant/public/mojom/assistant.mojom
@@ -174,6 +174,9 @@
   // being in background of Assistant UI, not in background of browser.
   OnOpenUrlResponse(url.mojom.Url url, bool in_background);
 
+  // Assistant got open Android app response from server.
+  OnOpenAppResponse(AndroidAppInfo app_info) => (bool app_opened);
+
   // Assistant speech recognition has started.
   OnSpeechRecognitionStarted();
 
diff --git a/components/arc/intent_helper/arc_intent_helper_bridge_unittest.cc b/components/arc/intent_helper/arc_intent_helper_bridge_unittest.cc
index 072e957..0ce6e72 100644
--- a/components/arc/intent_helper/arc_intent_helper_bridge_unittest.cc
+++ b/components/arc/intent_helper/arc_intent_helper_bridge_unittest.cc
@@ -24,7 +24,8 @@
   std::vector<IntentFilter::AuthorityEntry> authorities;
   authorities.emplace_back(host, /*port=*/-1);
   return IntentFilter(pkg_name, std::move(authorities),
-                      std::vector<IntentFilter::PatternMatcher>());
+                      std::vector<IntentFilter::PatternMatcher>(),
+                      std::vector<std::string>());
 }
 
 }  // namespace
diff --git a/components/arc/intent_helper/intent_filter.cc b/components/arc/intent_helper/intent_filter.cc
index bb4720a..fd15d61 100644
--- a/components/arc/intent_helper/intent_filter.cc
+++ b/components/arc/intent_helper/intent_filter.cc
@@ -19,8 +19,11 @@
 IntentFilter::IntentFilter(
     const std::string& package_name,
     std::vector<IntentFilter::AuthorityEntry> authorities,
-    std::vector<IntentFilter::PatternMatcher> paths)
-    : package_name_(package_name), authorities_(std::move(authorities)) {
+    std::vector<IntentFilter::PatternMatcher> paths,
+    std::vector<std::string> schemes)
+    : package_name_(package_name),
+      authorities_(std::move(authorities)),
+      schemes_(std::move(schemes)) {
   // In order to register a path we need to have at least one authority.
   if (!authorities_.empty())
     paths_ = std::move(paths);
diff --git a/components/arc/intent_helper/intent_filter.h b/components/arc/intent_helper/intent_filter.h
index 0640775..49f3d77 100644
--- a/components/arc/intent_helper/intent_filter.h
+++ b/components/arc/intent_helper/intent_filter.h
@@ -73,7 +73,8 @@
   IntentFilter(IntentFilter&& other);
   IntentFilter(const std::string& package_name,
                std::vector<AuthorityEntry> authorities,
-               std::vector<PatternMatcher> paths);
+               std::vector<PatternMatcher> paths,
+               std::vector<std::string> schemes);
   ~IntentFilter();
 
   IntentFilter& operator=(IntentFilter&& other);
@@ -85,6 +86,7 @@
     return authorities_;
   }
   const std::vector<PatternMatcher>& paths() const { return paths_; }
+  const std::vector<std::string>& schemes() const { return schemes_; }
 
  private:
   bool MatchDataAuthority(const GURL& url) const;
@@ -93,6 +95,7 @@
   std::string package_name_;
   std::vector<AuthorityEntry> authorities_;
   std::vector<PatternMatcher> paths_;
+  std::vector<std::string> schemes_;
 
   DISALLOW_COPY_AND_ASSIGN(IntentFilter);
 };
diff --git a/components/arc/intent_helper/intent_filter_mojom_traits.cc b/components/arc/intent_helper/intent_filter_mojom_traits.cc
index 0ae02e7..16b2b9f 100644
--- a/components/arc/intent_helper/intent_filter_mojom_traits.cc
+++ b/components/arc/intent_helper/intent_filter_mojom_traits.cc
@@ -27,8 +27,12 @@
   if (!data.ReadPackageName(&package_name))
     return false;
 
-  *out =
-      arc::IntentFilter(package_name, std::move(authorities), std::move(paths));
+  std::vector<std::string> schemes;
+  if (!data.ReadDataSchemes(&schemes))
+    return false;
+
+  *out = arc::IntentFilter(package_name, std::move(authorities),
+                           std::move(paths), std::move(schemes));
   return true;
 }
 
diff --git a/components/arc/intent_helper/intent_filter_mojom_traits.h b/components/arc/intent_helper/intent_filter_mojom_traits.h
index 7ef52ca..636efd1d 100644
--- a/components/arc/intent_helper/intent_filter_mojom_traits.h
+++ b/components/arc/intent_helper/intent_filter_mojom_traits.h
@@ -24,10 +24,9 @@
     // Returns an empty array.
     return base::span<std::string>();
   }
-  static const base::span<std::string> data_schemes(
+  static const std::vector<std::string>& data_schemes(
       const arc::IntentFilter& r) {
-    // Returns an empty array.
-    return base::span<std::string>();
+    return r.schemes();
   }
   static const std::vector<arc::IntentFilter::AuthorityEntry>& data_authorities(
       const arc::IntentFilter& r) {
diff --git a/components/arc/intent_helper/intent_filter_unittest.cc b/components/arc/intent_helper/intent_filter_unittest.cc
index 0bcc241b..a2158cd 100644
--- a/components/arc/intent_helper/intent_filter_unittest.cc
+++ b/components/arc/intent_helper/intent_filter_unittest.cc
@@ -41,7 +41,7 @@
 
   operator IntentFilter() {
     return IntentFilter(kPackageName, std::move(authorities_),
-                        std::move(paths_));
+                        std::move(paths_), std::vector<std::string>());
   }
 
  private:
diff --git a/components/arc/session/arc_vm_client_adapter.cc b/components/arc/session/arc_vm_client_adapter.cc
index caae3723..fd1bff9f 100644
--- a/components/arc/session/arc_vm_client_adapter.cc
+++ b/components/arc/session/arc_vm_client_adapter.cc
@@ -14,7 +14,7 @@
 #include "base/memory/weak_ptr.h"
 #include "base/optional.h"
 #include "base/strings/stringprintf.h"
-#include "base/task/post_task.h"
+#include "base/threading/sequenced_task_runner_handle.h"
 #include "chromeos/dbus/dbus_thread_manager.h"
 #include "chromeos/dbus/login_manager/arc.pb.h"
 #include "chromeos/dbus/upstart/upstart_client.h"
@@ -45,7 +45,8 @@
             StartArcMiniContainerRequest_PlayStoreAutoUpdate_AUTO_UPDATE_OFF) {
       play_store_auto_update_ = false;
     }
-    base::PostTask(FROM_HERE, base::BindOnce(std::move(callback), true));
+    base::SequencedTaskRunnerHandle::Get()->PostTask(
+        FROM_HERE, base::BindOnce(std::move(callback), true));
   }
 
   void UpgradeArc(const UpgradeArcContainerRequest& request,
diff --git a/components/download/internal/common/base_file.cc b/components/download/internal/common/base_file.cc
index 5f955ab6..d5281d7 100644
--- a/components/download/internal/common/base_file.cc
+++ b/components/download/internal/common/base_file.cc
@@ -80,9 +80,19 @@
     return;
   }
 #endif  // defined(OS_ANDROID)
-  file->Initialize(file_path, base::File::FLAG_OPEN_ALWAYS |
-                                  base::File::FLAG_WRITE |
-                                  base::File::FLAG_READ);
+
+  // Use exclusive write to prevent another process from writing the file.
+  file->Initialize(
+      file_path,
+      base::File::FLAG_OPEN_ALWAYS | base::File::FLAG_WRITE |
+          base::File::FLAG_READ
+#if defined(OS_WIN)
+          // Don't allow other process to write to the file while Chrome is
+          // writing to it. On posix systems, use FLAG_EXCLUSIVE_WRITE will
+          // cause file creation to fail if the file already exists.
+          | base::File::FLAG_EXCLUSIVE_WRITE
+#endif  // defined(OS_WIN)
+  );
 }
 
 void DeleteFile(const base::FilePath& file_path) {
diff --git a/components/download/internal/common/base_file_unittest.cc b/components/download/internal/common/base_file_unittest.cc
index 921ad87a..0b32a96a 100644
--- a/components/download/internal/common/base_file_unittest.cc
+++ b/components/download/internal/common/base_file_unittest.cc
@@ -140,13 +140,17 @@
   void CreateFileWithName(const base::FilePath& file_name) {
     EXPECT_NE(base::FilePath::StringType(), file_name.value());
     BaseFile duplicate_file(download::DownloadItem::kInvalidId);
-    EXPECT_EQ(DOWNLOAD_INTERRUPT_REASON_NONE,
-              duplicate_file.Initialize(file_name, temp_dir_.GetPath(),
-                                        base::File(), 0, std::string(),
-                                        std::unique_ptr<crypto::SecureHash>(),
-                                        false, &kTestDataBytesWasted));
+    DownloadInterruptReason reason = duplicate_file.Initialize(
+        file_name, temp_dir_.GetPath(), base::File(), 0, std::string(),
+        std::unique_ptr<crypto::SecureHash>(), false, &kTestDataBytesWasted);
+#if defined(OS_WIN)
+    EXPECT_EQ(reason, DOWNLOAD_INTERRUPT_REASON_FILE_FAILED);
+#else
+    EXPECT_EQ(reason, DOWNLOAD_INTERRUPT_REASON_NONE);
     // Write something into it.
     duplicate_file.AppendDataToFile(kTestData4, kTestDataLength4);
+#endif  // defined(OS_WIN)
+
     // Detach the file so it isn't deleted on destruction of |duplicate_file|.
     duplicate_file.Detach();
   }
diff --git a/components/download/internal/common/download_file_impl.cc b/components/download/internal/common/download_file_impl.cc
index ce58672..5b3951a 100644
--- a/components/download/internal/common/download_file_impl.cc
+++ b/components/download/internal/common/download_file_impl.cc
@@ -688,9 +688,10 @@
             << "Received slice index out of bound!";
         received_slices_[source_stream->index()].finished = true;
       }
-
-      SetPotentialFileLength(source_stream->offset() +
-                             source_stream->bytes_read());
+      if (!should_terminate) {
+        SetPotentialFileLength(source_stream->offset() +
+                               source_stream->bytes_read());
+      }
     }
     num_active_streams_--;
 
diff --git a/components/download/internal/common/download_file_unittest.cc b/components/download/internal/common/download_file_unittest.cc
index e36751b6..2140f1d 100644
--- a/components/download/internal/common/download_file_unittest.cc
+++ b/components/download/internal/common/download_file_unittest.cc
@@ -184,6 +184,15 @@
 
   void ClearCallback() { sink_callback_.Reset(); }
 
+  void OnStreamActive(int64_t offset) {
+    DCHECK(download_file_->source_streams_.find(offset) !=
+           download_file_->source_streams_.end())
+        << "Can't find stream at offset : " << offset;
+    DownloadFileImpl::SourceStream* stream =
+        download_file_->source_streams_[offset].get();
+    download_file_->StreamActive(stream, MOJO_RESULT_OK);
+  }
+
   void SetInterruptReasonCallback(const base::Closure& closure,
                                   DownloadInterruptReason* reason_p,
                                   DownloadInterruptReason reason,
@@ -235,7 +244,6 @@
     }
 
     save_info->offset = 0;
-    save_info->length = length;
     save_info->file_offset = file_offset;
 
     download_file_.reset(new TestDownloadFileImpl(
@@ -1127,4 +1135,66 @@
   DestroyDownloadFile(0, false);
 }
 
+// The second stream successfully reads the data from its offset. However,
+// before it is able to write the data, the same block was written by
+// the first stream.
+TEST_F(DownloadFileTest, SecondStreamReadsOffsetWrittenByFirst) {
+  int64_t stream_0_length = GetBuffersLength(kTestData8, 4);
+
+  ASSERT_TRUE(CreateDownloadFile(stream_0_length, true,
+                                 DownloadItem::ReceivedSlices()));
+
+  // First stream writes the first 2 chunks.
+  Sequence seq;
+  SetupDataAppend(kTestData8, 2, input_stream_, seq, 0);
+
+  EXPECT_CALL(*input_stream_, Read(_, _))
+      .InSequence(seq)
+      .WillOnce(Return(InputStream::EMPTY))
+      .RetiresOnSaturation();
+  sink_callback_.Run(MOJO_RESULT_OK);
+  base::RunLoop().RunUntilIdle();
+
+  // The second stream is created and waiting for data.
+  additional_streams_[0] = new StrictMock<MockInputStream>();
+  EXPECT_CALL(*additional_streams_[0], RegisterDataReadyCallback(_))
+      .RetiresOnSaturation();
+  EXPECT_CALL(*additional_streams_[0], ClearDataReadyCallback())
+      .RetiresOnSaturation();
+  EXPECT_CALL(*additional_streams_[0], Read(_, _))
+      .WillOnce(Return(InputStream::EMPTY))
+      .RetiresOnSaturation();
+  int64_t offset = strlen(kTestData1) + strlen(kTestData2);
+  download_file_->AddInputStream(
+      std::unique_ptr<MockInputStream>(additional_streams_[0]), offset,
+      DownloadSaveInfo::kLengthFullContent);
+  base::RunLoop().RunUntilIdle();
+
+  // First stream reads the 3rd chunk and writes it to disk.
+  const char* chunk[] = {kTestData4};
+  SetupDataAppend(chunk, 1, input_stream_, seq, offset);
+  EXPECT_CALL(*input_stream_, Read(_, _))
+      .InSequence(seq)
+      .WillOnce(Return(InputStream::EMPTY))
+      .RetiresOnSaturation();
+  sink_callback_.Run(MOJO_RESULT_OK);
+  base::RunLoop().RunUntilIdle();
+
+  // Second stream also reads the 3rd chunk, but it will be terminated.
+  SetupDataAppend(chunk, 1, additional_streams_[0], seq, offset);
+  OnStreamActive(offset);
+  base::RunLoop().RunUntilIdle();
+
+  // First stream writes the last chunk, and completes the download.
+  chunk[0] = kTestData5;
+  SetupDataAppend(chunk, 1, input_stream_, seq, offset + strlen(kTestData4));
+  SetupFinishStream(DOWNLOAD_INTERRUPT_REASON_NONE, input_stream_, seq);
+  EXPECT_CALL(*(observer_.get()), MockDestinationCompleted(_, _));
+  sink_callback_.Run(MOJO_RESULT_OK);
+  base::RunLoop().RunUntilIdle();
+
+  download_file_->Cancel();
+  DestroyDownloadFile(0, false);
+}
+
 }  // namespace download
diff --git a/components/net_log/net_export_file_writer.cc b/components/net_log/net_export_file_writer.cc
index 4f6fbc3..0fce53b 100644
--- a/components/net_log/net_export_file_writer.cc
+++ b/components/net_log/net_export_file_writer.cc
@@ -147,11 +147,12 @@
 
   NotifyStateObserversAsync();
 
-  network_context->CreateNetLogExporter(mojo::MakeRequest(&net_log_exporter_));
+  network_context->CreateNetLogExporter(
+      net_log_exporter_.BindNewPipeAndPassReceiver());
   base::Value custom_constants = base::Value::FromUniquePtrValue(
       GetPlatformConstantsForNetLog(command_line_string, channel_string));
 
-  net_log_exporter_.set_connection_error_handler(base::BindOnce(
+  net_log_exporter_.set_disconnect_handler(base::BindOnce(
       &NetExportFileWriter::OnConnectionError, base::Unretained(this)));
 
   base::PostTaskAndReplyWithResult(
diff --git a/components/net_log/net_export_file_writer.h b/components/net_log/net_export_file_writer.h
index c7cfda7..90153f21 100644
--- a/components/net_log/net_export_file_writer.h
+++ b/components/net_log/net_export_file_writer.h
@@ -19,6 +19,7 @@
 #include "base/observer_list.h"
 #include "base/threading/thread_checker.h"
 #include "base/values.h"
+#include "mojo/public/cpp/bindings/remote.h"
 #include "net/log/net_log_capture_mode.h"
 #include "services/network/public/mojom/net_log.mojom.h"
 #include "services/network/public/mojom/network_service.mojom.h"
@@ -214,7 +215,7 @@
   base::FilePath log_path_;  // base::FilePath to the NetLog file.
 
   // Used to ask the network service to do the actual exporting.
-  network::mojom::NetLogExporterPtr net_log_exporter_;
+  mojo::Remote<network::mojom::NetLogExporter> net_log_exporter_;
 
   // List of StateObservers to notify on state changes.
   base::ObserverList<StateObserver, true>::Unchecked state_observer_list_;
diff --git a/components/net_log/net_export_file_writer_unittest.cc b/components/net_log/net_export_file_writer_unittest.cc
index f75ec6a..caf7638 100644
--- a/components/net_log/net_export_file_writer_unittest.cc
+++ b/components/net_log/net_export_file_writer_unittest.cc
@@ -83,9 +83,9 @@
 class FakeNetworkContext : public network::TestNetworkContext {
  public:
   void CreateNetLogExporter(
-      network::mojom::NetLogExporterRequest request) override {
+      mojo::PendingReceiver<network::mojom::NetLogExporter> receiver) override {
     binding_ = mojo::StrongBinding<network::mojom::NetLogExporter>::Create(
-        std::make_unique<FakeNetLogExporter>(), std::move(request));
+        std::make_unique<FakeNetLogExporter>(), std::move(receiver));
   }
 
   void Disconnect() { binding_->Close(); }
diff --git a/components/omnibox/browser/clipboard_provider.cc b/components/omnibox/browser/clipboard_provider.cc
index 1646d4d5..ce1a857 100644
--- a/components/omnibox/browser/clipboard_provider.cc
+++ b/components/omnibox/browser/clipboard_provider.cc
@@ -7,6 +7,7 @@
 #include <algorithm>
 #include <memory>
 #include <utility>
+#include <vector>
 
 #include "base/bind.h"
 #include "base/feature_list.h"
@@ -33,6 +34,15 @@
 #include "ui/base/l10n/l10n_util.h"
 #include "ui/gfx/image/image_util.h"
 
+namespace {
+
+bool IsMatchDeletionEnabled() {
+  return base::FeatureList::IsEnabled(
+      omnibox::kOmniboxRemoveSuggestionsFromClipboard);
+}
+
+}  // namespace
+
 ClipboardProvider::ClipboardProvider(AutocompleteProviderClient* client,
                                      AutocompleteProviderListener* listener,
                                      HistoryURLProvider* history_url_provider,
@@ -83,6 +93,43 @@
   AutocompleteProvider::Stop(clear_cached_results, due_to_user_inactivity);
 }
 
+void ClipboardProvider::DeleteMatch(const AutocompleteMatch& match) {
+  clipboard_content_->ClearClipboardContent();
+
+  const auto pred = [&match](const AutocompleteMatch& i) {
+    return i.contents == match.contents && i.type == match.type;
+  };
+  base::EraseIf(matches_, pred);
+}
+
+void ClipboardProvider::AddProviderInfo(ProvidersInfo* provider_info) const {
+  // If a URL wasn't suggested on this most recent focus event, don't bother
+  // setting |times_returned_results_in_session|, as in effect this URL has
+  // never been suggested during the current session.  (For the purpose of
+  // this provider, we define a session as intervals between when a URL
+  // clipboard suggestion changes.)
+  if (current_url_suggested_times_ == 0)
+    return;
+  provider_info->push_back(metrics::OmniboxEventProto_ProviderInfo());
+  metrics::OmniboxEventProto_ProviderInfo& new_entry = provider_info->back();
+  new_entry.set_provider(AsOmniboxEventProviderType());
+  new_entry.set_provider_done(done_);
+  new_entry.set_times_returned_results_in_session(current_url_suggested_times_);
+
+  if (field_trial_triggered_ || field_trial_triggered_in_session_) {
+    std::vector<uint32_t> field_trial_hashes;
+    OmniboxFieldTrial::GetActiveSuggestFieldTrialHashes(&field_trial_hashes);
+    for (uint32_t trial : field_trial_hashes) {
+      if (field_trial_triggered_) {
+        new_entry.mutable_field_trial_triggered()->Add(trial);
+      }
+      if (field_trial_triggered_in_session_) {
+        new_entry.mutable_field_trial_triggered_in_session()->Add(trial);
+      }
+    }
+  }
+}
+
 void ClipboardProvider::ResetSession() {
   field_trial_triggered_ = false;
   field_trial_triggered_in_session_ = false;
@@ -144,7 +191,7 @@
   DCHECK(url.is_valid());
 
   // Add the clipboard match. The relevance is 800 to beat ZeroSuggest results.
-  AutocompleteMatch match(this, 800, false,
+  AutocompleteMatch match(this, 800, IsMatchDeletionEnabled(),
                           AutocompleteMatchType::CLIPBOARD_URL);
   match.destination_url = url;
   // Because the user did not type a related input to get this clipboard
@@ -188,7 +235,7 @@
     return base::nullopt;
 
   // Add the clipboard match. The relevance is 800 to beat ZeroSuggest results.
-  AutocompleteMatch match(this, 800, false,
+  AutocompleteMatch match(this, 800, IsMatchDeletionEnabled(),
                           AutocompleteMatchType::CLIPBOARD_TEXT);
   TemplateURLService* url_service = client_->GetTemplateURLService();
   const TemplateURL* default_url = url_service->GetDefaultSearchProvider();
@@ -310,30 +357,3 @@
   }
 }
 
-void ClipboardProvider::AddProviderInfo(ProvidersInfo* provider_info) const {
-  // If a URL wasn't suggested on this most recent focus event, don't bother
-  // setting |times_returned_results_in_session|, as in effect this URL has
-  // never been suggested during the current session.  (For the purpose of
-  // this provider, we define a session as intervals between when a URL
-  // clipboard suggestion changes.)
-  if (current_url_suggested_times_ == 0)
-    return;
-  provider_info->push_back(metrics::OmniboxEventProto_ProviderInfo());
-  metrics::OmniboxEventProto_ProviderInfo& new_entry = provider_info->back();
-  new_entry.set_provider(AsOmniboxEventProviderType());
-  new_entry.set_provider_done(done_);
-  new_entry.set_times_returned_results_in_session(current_url_suggested_times_);
-
-  if (field_trial_triggered_ || field_trial_triggered_in_session_) {
-    std::vector<uint32_t> field_trial_hashes;
-    OmniboxFieldTrial::GetActiveSuggestFieldTrialHashes(&field_trial_hashes);
-    for (uint32_t trial : field_trial_hashes) {
-      if (field_trial_triggered_) {
-        new_entry.mutable_field_trial_triggered()->Add(trial);
-      }
-      if (field_trial_triggered_in_session_) {
-        new_entry.mutable_field_trial_triggered_in_session()->Add(trial);
-      }
-    }
-  }
-}
diff --git a/components/omnibox/browser/clipboard_provider.h b/components/omnibox/browser/clipboard_provider.h
index 2885d9666..8a6da79 100644
--- a/components/omnibox/browser/clipboard_provider.h
+++ b/components/omnibox/browser/clipboard_provider.h
@@ -25,6 +25,7 @@
   // AutocompleteProvider implementation.
   void Start(const AutocompleteInput& input, bool minimal_changes) override;
   void Stop(bool clear_cached_results, bool due_to_user_inactivity) override;
+  void DeleteMatch(const AutocompleteMatch& match) override;
   void AddProviderInfo(ProvidersInfo* provider_info) const override;
   void ResetSession() override;
 
diff --git a/components/omnibox/browser/clipboard_provider_unittest.cc b/components/omnibox/browser/clipboard_provider_unittest.cc
index 6c6e1996..f66561c 100644
--- a/components/omnibox/browser/clipboard_provider_unittest.cc
+++ b/components/omnibox/browser/clipboard_provider_unittest.cc
@@ -65,6 +65,12 @@
                                          base::TimeDelta::FromMinutes(10));
   }
 
+  bool IsClipboardEmpty() {
+    return clipboard_content_.GetRecentURLFromClipboard() == base::nullopt &&
+           clipboard_content_.GetRecentTextFromClipboard() == base::nullopt &&
+           clipboard_content_.GetRecentImageFromClipboard() == base::nullopt;
+  }
+
   AutocompleteInput CreateAutocompleteInput(bool from_omnibox_focus) {
     AutocompleteInput input(base::string16(), metrics::OmniboxEventProto::OTHER,
                             classifier_);
@@ -142,3 +148,19 @@
                                          image_bytes);
   ASSERT_GE(provider_->matches().size(), 1U);
 }
+
+TEST_F(ClipboardProviderTest, DeleteMatch) {
+  base::test::ScopedFeatureList feature_list;
+  base::Feature textFeature = omnibox::kEnableClipboardProviderTextSuggestions;
+  feature_list.InitAndEnableFeature(textFeature);
+  auto template_url_service = std::make_unique<TemplateURLService>(
+      /*initializers=*/nullptr, /*count=*/0);
+  client_->set_template_url_service(std::move(template_url_service));
+  SetClipboardText(base::UTF8ToUTF16(kClipboardText));
+  provider_->Start(CreateAutocompleteInput(true), false);
+  ASSERT_EQ(provider_->matches().size(), 1U);
+
+  provider_->DeleteMatch(provider_->matches().back());
+  ASSERT_EQ(provider_->matches().size(), 0U);
+  ASSERT_TRUE(IsClipboardEmpty());
+}
diff --git a/components/omnibox/common/omnibox_features.cc b/components/omnibox/common/omnibox_features.cc
index 696ccbd..1c03a13 100644
--- a/components/omnibox/common/omnibox_features.cc
+++ b/components/omnibox/common/omnibox_features.cc
@@ -280,6 +280,10 @@
     "OmniboxPreserveDefaultMatchAgainstAsyncUpdate",
     base::FEATURE_DISABLED_BY_DEFAULT};
 
+// Feature used to allow users to remove suggestions from clipboard.
+const base::Feature kOmniboxRemoveSuggestionsFromClipboard{
+    "OmniboxRemoveSuggestionsFromClipboard", base::FEATURE_DISABLED_BY_DEFAULT};
+
 // Feature to configure on-focus suggestions provided by ZeroSuggestProvider.
 // This feature's main job is to contain some field trial parameters such as:
 //  - "ZeroSuggestVariant" configures the per-page-classification mode of
diff --git a/components/omnibox/common/omnibox_features.h b/components/omnibox/common/omnibox_features.h
index 4910578..028d931c 100644
--- a/components/omnibox/common/omnibox_features.h
+++ b/components/omnibox/common/omnibox_features.h
@@ -46,6 +46,7 @@
 extern const base::Feature kOmniboxMaterialDesignWeatherIcons;
 extern const base::Feature kOmniboxDisableInstantExtendedLimit;
 extern const base::Feature kOmniboxSearchEngineLogo;
+extern const base::Feature kOmniboxRemoveSuggestionsFromClipboard;
 
 // Flags that affect the "twiddle" step of AutocompleteResult, i.e. SortAndCull.
 // TODO(tommycli): There are more flags above that belong in this category.
diff --git a/components/open_from_clipboard/clipboard_recent_content.h b/components/open_from_clipboard/clipboard_recent_content.h
index 11d25d18..133d6e3 100644
--- a/components/open_from_clipboard/clipboard_recent_content.h
+++ b/components/open_from_clipboard/clipboard_recent_content.h
@@ -48,6 +48,10 @@
   // clipboard's content changed.
   virtual void SuppressClipboardContent() = 0;
 
+  // Clear clipboard content. Different with |SuppressClipboardContent|, this
+  // function will clear content in the clipboard.
+  virtual void ClearClipboardContent() = 0;
+
  protected:
   // GetRecentURLFromClipboard() should never return a URL from a clipboard
   // older than this.
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic.cc b/components/open_from_clipboard/clipboard_recent_content_generic.cc
index 97db9cdf..f830c884 100644
--- a/components/open_from_clipboard/clipboard_recent_content_generic.cc
+++ b/components/open_from_clipboard/clipboard_recent_content_generic.cc
@@ -4,6 +4,8 @@
 
 #include "components/open_from_clipboard/clipboard_recent_content_generic.h"
 
+#include <string>
+
 #include "base/strings/string_util.h"
 #include "ui/base/clipboard/clipboard.h"
 
@@ -103,6 +105,10 @@
   ui::Clipboard::GetForCurrentThread()->ClearLastModifiedTime();
 }
 
+void ClipboardRecentContentGeneric::ClearClipboardContent() {
+  ui::Clipboard::GetForCurrentThread()->Clear(ui::ClipboardBuffer::kCopyPaste);
+}
+
 // static
 bool ClipboardRecentContentGeneric::IsAppropriateSuggestion(const GURL& url) {
   // Check to make sure it's a scheme we're willing to suggest.
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic.h b/components/open_from_clipboard/clipboard_recent_content_generic.h
index 8005485..27f036d 100644
--- a/components/open_from_clipboard/clipboard_recent_content_generic.h
+++ b/components/open_from_clipboard/clipboard_recent_content_generic.h
@@ -20,7 +20,7 @@
 // anything.
 class ClipboardRecentContentGeneric : public ClipboardRecentContent {
  public:
-  explicit ClipboardRecentContentGeneric();
+  ClipboardRecentContentGeneric();
 
   // ClipboardRecentContent implementation.
   base::Optional<GURL> GetRecentURLFromClipboard() override;
@@ -28,6 +28,7 @@
   base::Optional<gfx::Image> GetRecentImageFromClipboard() override;
   base::TimeDelta GetClipboardContentAge() const override;
   void SuppressClipboardContent() override;
+  void ClearClipboardContent() override;
 
  private:
   // Returns true if the URL is appropriate to be suggested.
diff --git a/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc b/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
index febd864..b7843aea 100644
--- a/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
+++ b/components/open_from_clipboard/clipboard_recent_content_generic_unittest.cc
@@ -5,6 +5,7 @@
 #include "components/open_from_clipboard/clipboard_recent_content_generic.h"
 
 #include <memory>
+#include <string>
 #include <utility>
 
 #include "base/stl_util.h"
@@ -133,3 +134,23 @@
       base::UTF16ToUTF8(recent_content.GetRecentTextFromClipboard().value())
           .c_str());
 }
+
+TEST_F(ClipboardRecentContentGenericTest, ClearClipboardContent) {
+  // Make sure the URL is suggested.
+  ClipboardRecentContentGeneric recent_content;
+  base::Time now = base::Time::Now();
+  std::string text = "http://example.com/";
+  test_clipboard_->WriteText(text.data(), text.length());
+  test_clipboard_->SetLastModifiedTime(now - base::TimeDelta::FromSeconds(10));
+  EXPECT_TRUE(recent_content.GetRecentURLFromClipboard().has_value());
+
+  // After clear it, it shouldn't be suggested.
+  recent_content.ClearClipboardContent();
+  EXPECT_FALSE(recent_content.GetRecentURLFromClipboard().has_value());
+
+  // If the clipboard changes, even if to the same thing again, the content
+  // should be suggested again.
+  test_clipboard_->WriteText(text.data(), text.length());
+  test_clipboard_->SetLastModifiedTime(now);
+  EXPECT_TRUE(recent_content.GetRecentURLFromClipboard().has_value());
+}
diff --git a/components/open_from_clipboard/clipboard_recent_content_ios.h b/components/open_from_clipboard/clipboard_recent_content_ios.h
index ceb4d41..e5adf8a 100644
--- a/components/open_from_clipboard/clipboard_recent_content_ios.h
+++ b/components/open_from_clipboard/clipboard_recent_content_ios.h
@@ -5,6 +5,8 @@
 #ifndef COMPONENTS_OPEN_FROM_CLIPBOARD_CLIPBOARD_RECENT_CONTENT_IOS_H_
 #define COMPONENTS_OPEN_FROM_CLIPBOARD_CLIPBOARD_RECENT_CONTENT_IOS_H_
 
+#include <string>
+
 #include "base/mac/scoped_nsobject.h"
 #include "base/macros.h"
 #include "base/time/time.h"
@@ -33,7 +35,8 @@
                             NSUserDefaults* group_user_defaults);
 
   // Constructor that directly takes an |implementation|. For use in tests.
-  ClipboardRecentContentIOS(ClipboardRecentContentImplIOS* implementation);
+  explicit ClipboardRecentContentIOS(
+      ClipboardRecentContentImplIOS* implementation);
 
   ~ClipboardRecentContentIOS() override;
 
@@ -43,6 +46,7 @@
   base::Optional<gfx::Image> GetRecentImageFromClipboard() override;
   base::TimeDelta GetClipboardContentAge() const override;
   void SuppressClipboardContent() override;
+  void ClearClipboardContent() override;
 
  private:
   // The implementation instance.
diff --git a/components/open_from_clipboard/clipboard_recent_content_ios.mm b/components/open_from_clipboard/clipboard_recent_content_ios.mm
index 28273e6..9261bf9e 100644
--- a/components/open_from_clipboard/clipboard_recent_content_ios.mm
+++ b/components/open_from_clipboard/clipboard_recent_content_ios.mm
@@ -109,3 +109,8 @@
 void ClipboardRecentContentIOS::SuppressClipboardContent() {
   [implementation_ suppressClipboardContent];
 }
+
+void ClipboardRecentContentIOS::ClearClipboardContent() {
+  NOTIMPLEMENTED();
+  return;
+}
diff --git a/components/open_from_clipboard/fake_clipboard_recent_content.cc b/components/open_from_clipboard/fake_clipboard_recent_content.cc
index f957c3d..5db2690f 100644
--- a/components/open_from_clipboard/fake_clipboard_recent_content.cc
+++ b/components/open_from_clipboard/fake_clipboard_recent_content.cc
@@ -40,6 +40,14 @@
   suppress_content_ = true;
 }
 
+void FakeClipboardRecentContent::ClearClipboardContent() {
+  clipboard_url_content_ = base::nullopt;
+  clipboard_text_content_ = base::nullopt;
+  clipboard_image_content_ = base::nullopt;
+  content_age_ = base::TimeDelta::Max();
+  suppress_content_ = false;
+}
+
 void FakeClipboardRecentContent::SetClipboardURL(const GURL& url,
                                                  base::TimeDelta content_age) {
   DCHECK(url.is_valid());
diff --git a/components/open_from_clipboard/fake_clipboard_recent_content.h b/components/open_from_clipboard/fake_clipboard_recent_content.h
index 6179839..da6a32f 100644
--- a/components/open_from_clipboard/fake_clipboard_recent_content.h
+++ b/components/open_from_clipboard/fake_clipboard_recent_content.h
@@ -24,6 +24,7 @@
   base::Optional<gfx::Image> GetRecentImageFromClipboard() override;
   base::TimeDelta GetClipboardContentAge() const override;
   void SuppressClipboardContent() override;
+  void ClearClipboardContent() override;
 
   // Sets the URL and clipboard content age. This clears the text and image.
   void SetClipboardURL(const GURL& url, base::TimeDelta content_age);
diff --git a/components/policy/resources/policy_templates_de.xtb b/components/policy/resources/policy_templates_de.xtb
index 82fea01..40f7e51 100644
--- a/components/policy/resources/policy_templates_de.xtb
+++ b/components/policy/resources/policy_templates_de.xtb
@@ -390,7 +390,7 @@
       sind nicht zulässig.</translation>
 <translation id="1634989431648355062">Das Plug-in "<ph name="FLASH_PLUGIN_NAME" />" für diese Websites zulassen</translation>
 <translation id="1645793986494086629">Schema:</translation>
-<translation id="1648816843164517573">Liste der Namen, die den HSTS-Richtliniencheck umgehen</translation>
+<translation id="1648816843164517573">Liste der Namen, die vom HSTS-Richtliniencheck ausgenommen sind</translation>
 <translation id="1653229475925941921">Ist diese Richtlinie konfiguriert, wird damit der Lupentyp bestimmt, der aktiviert ist. Wenn Sie die Richtlinie auf "None" setzen, ist die Lupe deaktiviert.
 
           Wenn Sie diese Richtlinie konfigurieren, kann sie vom Nutzer nicht geändert oder überschrieben werden.
@@ -1111,7 +1111,7 @@
       Wenn Sie diese Einstellung deaktivieren oder keinen Wert festlegen, wird für die Druckvorschau der zuletzt genutzte Drucker als Standarddrucker verwendet.
 
       Ist diese Einstellung aktiviert, wird für die Druckvorschau der Standarddrucker des Betriebssystems als Standarddrucker ausgewählt.</translation>
-<translation id="285627849510728211">Tageskonfiguration für den erweiterten Akkulademodus festlegen</translation>
+<translation id="285627849510728211">Tageskonfiguration für den intelligenten Akkulademodus festlegen</translation>
 <translation id="2856674246949497058">Führen Sie ein Rollback durch und bleiben Sie bei der Zielversion, falls die Version des Betriebssystems neuer ist als die der Zielversion. Außerdem sollten Sie während des Vorgangs einen Powerwash durchführen.</translation>
 <translation id="2872961005593481000">Herunterfahren</translation>
 <translation id="2873651257716068683">Dadurch wird die standardmäßige Druckseitengröße überschrieben. Wenn die Seitengröße nicht verfügbar ist, wird die Richtlinie ignoriert.</translation>
@@ -1345,7 +1345,7 @@
 <translation id="332771718998993005">Hiermit wird der Name von <ph name="PRODUCT_NAME" />-Zielen festgelegt.
 
           Wird für diese Richtlinie ein nicht-leerer String definiert, dann wird dieser als Name für das <ph name="PRODUCT_NAME" />-Ziel verwendet. Andernfalls wird der Gerätename als Zielname verwendet. Ist diese Richtlinie nicht definiert, wird der Gerätename als Zielname verwendet und der Geräteeigentümer oder ein Nutzer der Domain, von der das Gerät verwaltet wird, hat die Möglichkeit, den Namen zu ändern. Der Name darf maximal 24 Zeichen enthalten.</translation>
-<translation id="3331950121151548952">Liste der Domains, für die hochgeladene Inhalte auf Malware geprüft werden müssen.  Diese Richtlinie wird nur verwendet, wenn "<ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />" auf einen Wert gesetzt ist und Malwareprüfungen für Uploads zugelassen oder erzwungen werden.
+<translation id="3331950121151548952">Liste der Domains, für die hochgeladene Inhalte auf Malware geprüft werden müssen.  Diese Richtlinie wird nur verwendet, wenn "<ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />" auf einen Wert gesetzt ist, mit dem Malwareprüfungen für Uploads zugelassen oder erzwungen werden.
 
       Wenn diese Richtlinie nicht konfiguriert oder eine leere Liste festgelegt ist, werden hochgeladene Inhalte nicht auf Malware geprüft.
       </translation>
@@ -1423,7 +1423,7 @@
 
           Diese Richtlinie wird nur verwendet, wenn "<ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" />" auf "<ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />" gesetzt ist.
 
-          Wenn diese Richtlinie nicht konfiguriert oder festgelegt ist, wird der <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" />-Akkulademodus verwendet.</translation>
+          Wenn diese Richtlinie nicht konfiguriert oder festgelegt ist, wird der Akkulademodus <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" /> verwendet.</translation>
 <translation id="348495353354674884">Bildschirmtastatur aktivieren</translation>
 <translation id="3487623755010328395">
         Wenn diese Richtlinie festgelegt wird, versucht <ph name="PRODUCT_NAME" />, sich selbst zu registrieren und die zugehörige Cloud-Richtlinie für alle Profile anzuwenden.
@@ -1862,11 +1862,11 @@
           Wenn Sie diese Richtlinie konfigurieren, kann sie vom Nutzer nicht geändert oder überschrieben werden.
 
           Ist die Richtlinie nicht konfiguriert, ist "Automatisch klicken" anfangs deaktiviert, kann jedoch vom Nutzer jederzeit aktiviert werden.</translation>
-<translation id="4215197846797661927">Legt die Tageskonfiguration für den erweiterten Akkulademodus fest.
+<translation id="4215197846797661927">Legt die Tageskonfiguration für den intelligenten Akkulademodus fest.
 
           Diese Richtlinie wird nur verwendet, wenn "<ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_NAME" />" auf "true" gesetzt ist.
 
-          Ist diese Richtlinie nicht konfiguriert oder nicht eingestellt, dann bleibt der erweiterte Akkulademodus deaktiviert.
+          Ist diese Richtlinie nicht konfiguriert oder nicht eingestellt, dann bleibt der intelligente Akkulademodus deaktiviert.
 
           Hinweis: "<ph name="CHARGE_START_TIME_FIELD_NAME" />" muss kleiner sein als "<ph name="CHARGE_END_TIME_FIELD_NAME" />".
 
@@ -2165,14 +2165,14 @@
 <translation id="4807950475297505572">Die am längsten nicht verwendeten Nutzer werden entfernt, bis genügend freier Speicherplatz vorhanden ist.</translation>
 <translation id="4816674326202173458">Unternehmensnutzer sowohl als primären als auch als sekundären Nutzer zulassen (Standardverhalten für nicht verwaltete Nutzer)</translation>
 <translation id="4826326557828204741">Auszuführende Aktion beim Erreichen der Leerlaufverzögerung während des Akkubetriebs</translation>
-<translation id="4830531683854509779">Hiermit können Hardwarestatistiken für SoC-Komponenten gemeldet werden.
+<translation id="4830531683854509779">Hiermit können Sie festlegen, dass Hardwarestatistiken für SoC-Komponenten gemeldet werden.
 
       Wird die Richtlinie auf "false" gesetzt oder nicht konfiguriert, werden keine Statistiken gemeldet.
       Wird die Richtlinie auf "true" gesetzt, werden Statistiken gemeldet.</translation>
 <translation id="4832852360828533362">Berichte zu Nutzern und Geräten</translation>
 <translation id="4834526953114077364">Die am längsten nicht verwendeten Nutzer, dich sich in den letzten 3 Monaten nicht angemeldet haben, werden entfernt, bis genügend freier Speicherplatz vorhanden ist.</translation>
 <translation id="4835622243021053389">NTLMv2-Authentifizierung aktivieren.</translation>
-<translation id="4856471929724652373">Sie können Informationen zum Betriebssystem-Update melden, wie den Updatestatus, die Plattformversion, die letzte Updateprüfung und den letzten Neustart.
+<translation id="4856471929724652373">Hiermit können Sie festlegen, dass Informationen zum Betriebssystem-Update gemeldet werden, wie der Updatestatus, die Plattformversion, die letzte Updateprüfung und der letzte Neustart.
 
       Wird die Richtlinie auf "false" gesetzt oder nicht konfiguriert, werden die Informationen zum Betriebssystem-Update nicht gemeldet. Wird die Richtlinie auf "true" gesetzt, werden die Informationen zum Betriebssystem-Update gemeldet.</translation>
 <translation id="4858735034935305895">Vollbildmodus zulassen</translation>
@@ -2524,7 +2524,7 @@
 
       Ist sie auf "Upload von passwortgeschützten Dateien zulassen" gesetzt, können passwortgeschützte Dateien in <ph name="PRODUCT_NAME" /> hochgeladen werden.
 
-      Wenn diese Richtlinie nicht eingerichtet oder auf "Upload und Download zulassen" festgelegt ist, gelten in <ph name="PRODUCT_NAME" /> die unter "Download von passwortgeschützten Dateien zulassen" und "Upload von passwortgeschützten Dateien zulassen" beschriebenen Regeln.
+      Wenn diese Richtlinie nicht eingerichtet oder auf "Upload und Download von passwortgeschützten Dateien zulassen" festgelegt ist, gelten in <ph name="PRODUCT_NAME" /> die unter "Download von passwortgeschützten Dateien zulassen" und "Upload von passwortgeschützten Dateien zulassen" beschriebenen Regeln.
       </translation>
 <translation id="5437733496511628148">Durch Aktivieren dieser Einstellung wird verhindert, dass Webseitenelemente, die nicht von der Domain in der Adressleiste des Browser stammen, Cookies setzen.
 
@@ -3403,7 +3403,7 @@
 
           Diese Richtlinie wird nur verwendet, wenn "<ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" />" auf "<ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />" gesetzt ist.
 
-          Wenn diese Richtlinie nicht konfiguriert oder festgelegt ist, wird der <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" />-Akkulademodus verwendet.</translation>
+          Wenn diese Richtlinie nicht konfiguriert oder festgelegt ist, wird der Akkulademodus <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" /> verwendet.</translation>
 <translation id="7140629953254369759"><ph name="PRODUCT_OS_NAME" /> wird angewiesen, die jeweils angegebene Konfiguration des Aufgabenplaners zu nutzen.
 
       Diese Richtlinie kann auf "Konservativ" und auf "Leistung" gesetzt werden. Dadurch wird entweder eine Aufgabenplaner-Konfiguration für optimale Stabilität oder für optimale Leistung ausgewählt.
@@ -3412,7 +3412,7 @@
 <translation id="7145335384492396213">Standardmodus PIN-Druck</translation>
 <translation id="7149042336307555519"> Verbindungstypen, die für Betriebssystem-Updates verwendet werden können. Betriebssystem-Updates stellen für Verbindungen aufgrund ihrer Größe eine starke Belastung dar und können zusätzliche Kosten verursachen. Aus diesem Grund sind sie für teure Verbindungstypen (derzeit nur "cellular") standardmäßig nicht aktiviert.
 
-      Die unterstützten Verbindungstypen sind "<ph name="CONNECTION_TYPE_ETHERNET_NAME" />", "<ph name="CONNECTION_TYPE_WIFI_NAME" />" und "<ph name="CONNECTION_TYPE_CELLULAR_NAME" />".</translation>
+      Die unterstützten Verbindungstypen sind <ph name="CONNECTION_TYPE_ETHERNET_NAME" />, <ph name="CONNECTION_TYPE_WIFI_NAME" /> und <ph name="CONNECTION_TYPE_CELLULAR_NAME" />.</translation>
 <translation id="7152605873936173525">Über diese Richtlinie wird der Modus des DoH-Resolvers gesteuert. Bei dieser Richtlinie wird nur der Standardmodus auf Anfrageebene festgelegt. Für bestimmte Anfragetypen kann der Modus überschrieben werden, etwa bei Anfragen zum Auflösen des Hostnamens eines DoH-Servers.
 
       Durch den Modus "<ph name="SECURE_DNS_MODE_OFF" />" wird DoH (DNS over HTTPS) deaktiviert.
@@ -4237,7 +4237,7 @@
 
         Im USB-Berechtigungsmodell wird die URL der anfragenden Website ("anfragende URL") und die URL der Frame-Website der obersten Ebene ("einbettende URL") verwendet. Dabei wird der anfragenden URL die Berechtigung erteilt, auf das USB-Gerät zuzugreifen. Wird die anfragende Website in einen iFrame geladen, kann die anfragende von der einbettenden URL abweichen. Deshalb darf das Feld "urls" bis zu zwei durch ein Komma voneinander getrennte URL-Strings enthalten: die anfragende URL und die einbettende URL. Falls nur eine einzige URL angegeben ist, wird der Zugriff auf die entsprechenden USB-Geräte gewährt, wenn unabhängig vom Einbettungsstatus die URL der anfragenden Website mit dieser URL übereinstimmt. Die URLs im Feld "urls" müssen gültig sein, da ansonsten die Richtlinie ignoriert wird.
 
-        Ist diese Richtlinie nicht konfiguriert, kommt für alle Websites der globale Standardwert zum Einsatz. Es gibt keinen automatischen Zugriff.</translation>
+        Ist diese Richtlinie nicht konfiguriert, kommt für alle Websites der globale Standardwert zum Einsatz (kein automatischer Zugriff).</translation>
 <translation id="8631434304112909927">Bis Version <ph name="UNTIL_VERSION" /></translation>
 <translation id="8649763579836720255">Chrome OS-Geräte können mithilfe einer Remote-Bescheinigung für überprüften Zugriff ein von der Chrome OS-Zertifizierungsstelle herausgegebenes Zertifikat erhalten, das die Berechtigung des Geräts für die Wiedergabe geschützter Medien nachweist. Bei diesem Vorgang werden Informationen zur Bestätigung der Hardware an die Chrome OS-Zertifizierungsstelle gesendet, anhand derer das Gerät eindeutig identifiziert werden kann.
 
@@ -4294,7 +4294,7 @@
       Wenn diese Richtlinie konfiguriert ist, werden diese Apps festgelegt und können von Nutzern nicht geändert werden.
 
       Ist diese Richtlinie nicht konfiguriert, können Nutzer die Liste der im Launcher angepinnten Apps ändern.</translation>
-<translation id="8779504970846195767">Hiermit wird der Schwellenwert des Akkus für das Umschalten bei Leistungsspitzen (%) festgelegt.
+<translation id="8779504970846195767">Hiermit wird der Schwellenwert des Akkus (%) für das Umschalten bei Leistungsspitzen festgelegt.
 
           Diese Richtlinie wird nur verwendet, wenn "<ph name="DEVICE_POWER_PEAK_SHIFT_ENABLED_NAME" />" auf "true" gesetzt ist.
 
@@ -4302,7 +4302,6 @@
 <translation id="8798099450830957504">Standardeinstellung</translation>
 <translation id="8800453707696044281">Den Akkuladestand (%) für benutzerdefiniertes Beenden des Ladevorgangs festlegen</translation>
 <translation id="8801680448782904838">Nutzer benachrichtigen, dass ein Neustart des Browsers oder des Geräts empfohlen wird oder erforderlich ist</translation>
-<translation id="8802816494059596691">In dieser Liste aufgeführte Hostnamen sind vom HSTS-Richtliniencheck ausgenommen, der Anfragen von http auf https upgraden kann. Für diese Richtlinie sind nur Single-Label-Hostnamen zulässig. Hostnamen müssen kanonisiert werden: Alle IDNs müssen in ihr A-Label-Format konvertiert und alle ASCII-Buchstaben kleingeschrieben werden. Diese Richtlinie gilt nur für die angegebenen Hostnamen. Sie gilt nicht für Subdomains der angegebenen Namen.</translation>
 <translation id="8818173863808665831">Meldet den Standort des Geräts.
 
       Wenn die Richtlinie nicht oder auf "False" festgelegt wird, wird der Standort nicht gemeldet.</translation>
@@ -4464,9 +4463,9 @@
       Wenn als Richtlinienwert ein Token festgelegt ist, das mit einem Quick-Fix-Build verknüpft ist, wird das Gerät auf den entsprechenden Build aktualisiert, sofern eine solche Aktualisierung nicht durch eine andere Richtlinie blockiert wird.
 
       Falls die Richtlinie nicht konfiguriert oder der Wert nicht mit einem Quick-Fix-Build verknüpft ist, wird das Gerät nicht auf einen Quick-Fix-Build aktualisiert. Wenn auf dem Gerät bereits ein Quick-Fix-Build installiert ist und die Richtlinie nicht mehr konfiguriert oder der Wert nicht mehr mit einem Quick-Fix-Build verknüpft ist, wird das Gerät auf einen regulären Build aktualisiert, sofern die Aktualisierung nicht durch eine andere Richtlinie blockiert wird.</translation>
-<translation id="9053158112041032237">Hiermit können Sie die Energieverwaltungsrichtlinie für den Akkulademodus aktivieren.
+<translation id="9053158112041032237">Hiermit können Sie die Energieverwaltungsrichtlinie für den Akkulademodus festlegen.
 
-          Mit dieser Richtlinie können Sie das Aufladen des Akkus dynamisch steuern und auf diese Weise den durch unnötige Belastung entstehenden Akkuverschleiß verringern und die Lebensdauer des Akkus verlängern.
+          Mit dieser Richtlinie können Sie das Aufladen des Akkus dynamisch steuern. So lässt sich der durch unnötige Belastung entstehende Akkuverschleiß verringern und die Lebensdauer des Akkus verlängern.
 
           Wenn der benutzerdefinierte Akkulademodus ausgewählt wird, müssen "<ph name="DEVICE_BATTERY_CHARGE_CUSTOM_START_CHARGING_NAME" />" und "<ph name="DEVICE_BATTERY_CHARGE_CUSTOM_STOP_CHARGING_NAME" />" konfiguriert sein.
 
diff --git a/components/policy/resources/policy_templates_es-419.xtb b/components/policy/resources/policy_templates_es-419.xtb
index fa49bf6..ac9a864 100644
--- a/components/policy/resources/policy_templates_es-419.xtb
+++ b/components/policy/resources/policy_templates_es-419.xtb
@@ -4347,7 +4347,6 @@
 <translation id="8798099450830957504">Predeterminado</translation>
 <translation id="8800453707696044281">Establecer el porcentaje del nivel de la batería en el que se debe detener la carga</translation>
 <translation id="8801680448782904838">Notificar a un usuario que se recomienda o es obligatorio reiniciar el navegador o el dispositivo</translation>
-<translation id="8802816494059596691">Los nombres de host que se especifican en esta lista no se incluirán en la revisión de la política de HSTS que podría mejorar las solicitudes de http a https. En esta política, solo se permiten nombres de host con una sola etiqueta. Los nombres de host deben estar canonicalizados: debe convertirse cualquier IDN a su formato de etiqueta A y todas las letras en formato ASCII deben estar en minúscula. Esta política solo se aplica a los nombres de host específicos de la lista; no se aplica a los subdominios de estos nombres.</translation>
 <translation id="8818173863808665831">Informa la ubicación geográfica del dispositivo.
 
      Si no se configura la política, ni se establece como falsa, no se informará la ubicación.</translation>
diff --git a/components/policy/resources/policy_templates_es.xtb b/components/policy/resources/policy_templates_es.xtb
index 8aea8f5..5018134 100644
--- a/components/policy/resources/policy_templates_es.xtb
+++ b/components/policy/resources/policy_templates_es.xtb
@@ -801,8 +801,8 @@
       Si se le asigna el valor "False" o no se le asigna ningún valor, no se registrarán los eventos.</translation>
 <translation id="2440773021691931148">Envía estadísticas e identificadores de hardware relacionados con la energía.
 
-      Si se asigna el valor "False" a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
-      Si se le asigna el valor "True", se enviarán las estadísticas.</translation>
+      Si se asigna el valor False a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
+      Si se le asigna el valor True, se enviarán las estadísticas.</translation>
 <translation id="244317009688098048">Permite habilitar la combinación de teclas de rescate para el inicio de sesión automático.
 
       Si se utiliza el valor True para esta política o no se establece la política y se ha configurado una cuenta local de dispositivo para el inicio de sesión automático sin tiempo de espera, <ph name="PRODUCT_OS_NAME" /> omitirá el inicio de sesión automático y mostrará la pantalla de inicio de sesión al utilizar la combinación de teclas Ctrl+Alt+S.
@@ -821,22 +821,22 @@
 
       Consulta https://www.chromestatus.com/feature/4664843055398912.</translation>
 <translation id="2466131534462628618">La autenticación del portal cautivo ignora el proxy</translation>
-<translation id="2466697858869282874">Configura la disponibilidad y el comportamiento de la función de actualización del firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />.
+<translation id="2466697858869282874">Configura la disponibilidad y el comportamiento de la función de actualización de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />.
 
       Los ajustes individuales se pueden especificar en las propiedades del archivo JSON:
 
-      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: si se le asigna el valor <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" />, los usuarios podrán activar el flujo de Powerwash para instalar una actualización del firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />.
+      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH" />: si se le asigna el valor <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_POWERWASH_TRUE" />, los usuarios podrán activar el flujo de Powerwash para instalar una actualización de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />.
 
-      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: si se le asigna el valor <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, los usuarios podrán ejecutar el flujo de la actualización del firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />, que mantiene el estado en todos los dispositivos (incluido el registro de empresa), pero se perderán los datos de usuario. Este flujo de actualizaciones está disponible a partir de la versión 68.
+      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE" />: si se le asigna el valor <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_ALLOW_USER_INITIATED_PRESERVE_DEVICE_STATE_TRUE" />, los usuarios podrán ejecutar el flujo de la actualización de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" />, que mantiene el estado en todos los dispositivos (incluido el registro de empresa), pero se perderán los datos de usuario. Este flujo de actualizaciones está disponible a partir de la versión 68.
 
-      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_AUTO_UPDATE_MODE" />: controla cómo se ejecutan las actualizaciones automáticas del firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> para firmware vulnerable de <ph name="TPM_FIRMWARE_UPDATE_TPM" />. Todos los flujos conservan el estado local del dispositivo.
-        Si se le asigna 1 como valor o no se le asigna ningún valor, las actualizaciones del firmware de TPM no se aplicarán.
+      <ph name="TPM_FIRMWARE_UPDATE_SETTINGS_AUTO_UPDATE_MODE" />: controla cómo se ejecutan las actualizaciones automáticas de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> para firmware vulnerable de <ph name="TPM_FIRMWARE_UPDATE_TPM" />. Todos los flujos conservan el estado local del dispositivo.
+        Si se le asigna 1 como valor o no se le asigna ningún valor, las actualizaciones de firmware de TPM no se aplicarán.
         Si se le asigna 2 como valor, el firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> se actualizará cuando se reinicie el equipo después de que el usuario haya aceptado la actualización.
         Si se le asigna 3 como valor, el firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> se actualizará cuando se reinicie el equipo.
         Si se le asigna 4 como valor, el firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> se actualizará tras el registro, antes del inicio de sesión del usuario.
         Esta opción está disponible a partir de la versión 75.
 
-      Si no se le asigna ningún valor a esta política, la función de actualización del firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> no estará disponible.</translation>
+      Si no se le asigna ningún valor a esta política, la función de actualización de firmware de <ph name="TPM_FIRMWARE_UPDATE_TPM" /> no estará disponible.</translation>
 <translation id="2471748297300970300">Si se inhabilita, no se mostrará ninguna advertencia de seguridad cuando se inicie Chrome con algunas instrucciones de línea de comandos potencialmente peligrosas.
 
           Si se habilita o no se define, se mostrarán advertencias de seguridad cuando se usen algunas instrucciones de línea de comandos para iniciar Chrome.
@@ -1725,8 +1725,8 @@
       Si no se define la política de fondo de pantalla del dispositivo, pero sí se define la política de fondo de pantalla del usuario, esta última decidirá qué contenido se mostrará.</translation>
 <translation id="3964606652985594895">Envía estadísticas e identificadores de hardware de los dispositivos de almacenamiento.
 
-      Si se asigna el valor "False" a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
-      Si se le asigna el valor "True", se enviarán las estadísticas.</translation>
+      Si se asigna el valor False a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
+      Si se le asigna el valor True, se enviarán las estadísticas.</translation>
 <translation id="3965339130942650562">Tiempo de espera para cerrar sesión cuando el usuario se encuentre inactivo</translation>
 <translation id="3973371701361892765">No ocultar automáticamente los archivos</translation>
 <translation id="3984028218719007910">Permite determinar si <ph name="PRODUCT_OS_NAME" /> mantiene los datos de cuenta locales tras cerrar la sesión. Si el valor se establece en "true", <ph name="PRODUCT_OS_NAME" /> no conservará ninguna cuenta de forma permanente y todos los datos de la sesión del usuario se descartarán al cerrar la sesión. Si esta política no se configura o el valor correspondiente se establece en "false", el dispositivo puede guardar datos de usuario locales (encriptados).</translation>
@@ -2011,7 +2011,7 @@
 
           Actualmente, esta función está inhabilitada en el servidor.</translation>
 <translation id="4363057787588706121">Permite combinar listas de políticas de fuentes distintas</translation>
-<translation id="4363101430102811068">Habilita la búsqueda de filtraciones de datos para las credenciales introducidas</translation>
+<translation id="4363101430102811068">Habilita la detección de filtraciones de datos para las credenciales introducidas</translation>
 <translation id="4363136876356691536">Si se asigna el valor "True" a esta política, las opciones de accesibilidad siempre aparecerán en el menú de la bandeja del sistema.
 
           Si se le asigna el valor "False", las opciones de accesibilidad nunca aparecerán en el menú de la bandeja del sistema.
@@ -2219,14 +2219,14 @@
 <translation id="4826326557828204741">Acción a emprender si se alcanza el retraso de inactividad mientras el dispositivo está usando la batería</translation>
 <translation id="4830531683854509779">Envía estadísticas de hardware sobre componentes SoC.
 
-      Si se asigna el valor "False" a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
-      Si se le asigna el valor "True", se enviarán las estadísticas.</translation>
+      Si se asigna el valor False a esta política o no se le asigna ninguno, no se enviará ninguna estadística.
+      Si se le asigna el valor True, se enviarán las estadísticas.</translation>
 <translation id="4832852360828533362">Informes de usuarios y dispositivos</translation>
 <translation id="4834526953114077364">Eliminar usuarios utilizados hace más tiempo que no hayan iniciado sesión en los tres últimos meses hasta que haya suficiente espacio libre</translation>
 <translation id="4835622243021053389">Habilita la autenticación NTLMv2.</translation>
 <translation id="4856471929724652373">Envía información de las actualizaciones del sistema operativo, como el estado de actualización, la versión de la plataforma, la última comprobación de actualizaciones y el último reinicio.
 
-      Si se asigna el valor "False" a esta política o no se le asigna ninguno, no se enviará información de las actualizaciones del sistema operativo. Si se le asigna el valor "True", se enviará información de las actualizaciones del sistema operativo.</translation>
+      Si se asigna el valor False a esta política o no se le asigna ninguno, no se enviará información de las actualizaciones del sistema operativo. Si se le asigna el valor True, se enviará información de las actualizaciones del sistema operativo.</translation>
 <translation id="4858735034935305895">Permitir modo de pantalla completa</translation>
 <translation id="4861767323695239729">Configurar los métodos de introducción admitidos en una sesión de usuario</translation>
 <translation id="487460824085252184">Migrar automáticamente sin solicitar el consentimiento de los usuarios.</translation>
@@ -3107,7 +3107,7 @@
 Si la política está establecida en False, no se informará sobre los usuarios.</translation>
 <translation id="6394350458541421998">Esta política no está disponible desde la versión 29 de <ph name="PRODUCT_OS_NAME" />. Utiliza la política PresentationScreenDimDelayScale en su lugar.</translation>
 <translation id="6401669939808766804">Cerrar la sesión del usuario</translation>
-<translation id="6403746242226534223">Comprueba con Navegación Segura la reputación de las URL visitadas en tiempo real</translation>
+<translation id="6403746242226534223">Comprueba la reputación de Navegación Segura de las URL visitadas en tiempo real</translation>
 <translation id="6406448383934634215">Si la acción seleccionada al iniciar el navegador es Abrir una lista de URLs, esta política permitirá especificar la lista de las URL que se deben abrir. Si no se define ningún valor, no se abrirá ninguna URL al iniciar el navegador.
 
           Esta política solo se aplica si se asigna el valor RestoreOnStartup a la política RestoreOnStartupIsURLs.
@@ -3250,7 +3250,7 @@
 <translation id="6689792153960219308">Informar sobre el estado del hardware</translation>
 <translation id="6698632841807204978">Habilitar la impresión en monocromo</translation>
 <translation id="6699880231565102694">Habilitar la autenticación de dos factores para hosts de acceso remoto</translation>
-<translation id="670597451099978576">Concede permiso automáticamente en la pantalla de inicio de sesión a estos sitios web para conectarse a dispositivos USB con los ID de proveedor y producto facilitados.</translation>
+<translation id="670597451099978576">Concede permiso automáticamente a estos sitios web para conectarse a dispositivos USB con los ID de proveedor y producto facilitados en la pantalla de inicio de sesión.</translation>
 <translation id="6720080634516505446"><ph name="PRODUCT_NAME" /> proporciona una instalación y actualización seguras de las extensiones. Sin embargo, el contenido de algunas extensiones alojadas fuera de Chrome Web Store solo lo pueden proteger algoritmos de hash o de firma no seguros, como SHA1. Si esta política no está habilitada, Chrome no permitirá la instalación ni las actualizaciones de esas extensiones hasta que sus desarrolladores modifiquen su diseño e incluyan algoritmos más seguros. Si esta política está habilitada, se permitirá la instalación y las actualizaciones de esas extensiones.
 
           Si esta política no está configurada, el comportamiento será como si estuviera habilitada.
@@ -3834,9 +3834,9 @@
       Cuando esta política está desactivada, no se puede verificar el código de acceso parental en el dispositivo del menor.</translation>
 <translation id="7625444193696794922">Permite especificar el canal de versiones al que se vinculará este dispositivo.</translation>
 <translation id="7625498350540361483">
-      Si se asigna el valor "True" a esta política, <ph name="PRODUCT_NAME" /> podrá recoger registros de eventos WebRTC procedentes de los servicios de Google (p. ej., Google Meet) y enviarlos a Google.
+      Si se asigna el valor True a esta política, <ph name="PRODUCT_NAME" /> podrá recoger registros de eventos WebRTC procedentes de los servicios de Google (p. ej., Google Meet) y enviarlos a Google.
 
-      Si se le asigna el valor "False", <ph name="PRODUCT_NAME" /> no podrá recoger ni subir esos registros.
+      Si se le asigna el valor False, <ph name="PRODUCT_NAME" /> no podrá recoger ni subir esos registros.
 
       Si no se define esta política, en las versiones hasta la M76 (incluida), <ph name="PRODUCT_NAME" /> no podrá recoger ni subir esos registros.
 
@@ -4370,9 +4370,9 @@
 Esta política hace que el encabezado X-GoogApps-Allowed-Domains se añada a todas las solicitudes HTTP y HTTPS en todos los dominios de google.com, como se describe en https://support.google.com/a/answer/1668854. 
 
 Los usuarios no pueden cambiar ni anular esta opción.</translation>
-<translation id="8625234016727663537">Permite configurar una lista con las URL de los sitios web a los que se concederá permiso automáticamente en la pantalla de inicio de sesión para acceder a un dispositivo USB con los ID de proveedor y producto especificados. Cada elemento de la lista debe contener tanto el dispositivo como las URL para que la política sea válida. Cada elemento de los dispositivos puede incluir un campo de ID de proveedor y otro de ID de producto. Los ID que se omitan se considerarán comodines, con una excepción: no se puede especificar un ID de producto sin definir también un ID de proveedor. De lo contrario, la política no será válida y se ignorará.
+<translation id="8625234016727663537">Permite configurar una lista con las URL de los sitios web a los que se concederá permiso automáticamente para acceder a un dispositivo USB con los ID de proveedor y producto especificados en la pantalla de inicio de sesión. Cada elemento de la lista debe contener tanto el dispositivo como las URL para que la política sea válida. Cada elemento de los dispositivos puede incluir un campo de ID de proveedor y otro de ID de producto. Los ID que se omitan se considerarán comodines, con una excepción: no se puede especificar un ID de producto sin definir también un ID de proveedor. De lo contrario, la política no será válida y se ignorará.
 
-        El modelo de permisos USB usa la URL del sitio web solicitante ("URL solicitante") y la URL del sitio web marco de nivel superior ("URL de inserción") para conceder permiso de acceso al dispositivo USB a la URL solicitante. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se encuentra en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de dos cadenas de URL delimitadas por una coma para especificar la URL solicitante y la de inserción, respectivamente. Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas. De lo contrario, la política se ignorará.
+        El modelo de permisos USB usa la URL del sitio web solicitante (URL solicitante) y la URL del sitio web marco de nivel superior (URL de inserción) para conceder permiso de acceso al dispositivo USB a la URL solicitante. La URL solicitante puede ser distinta a la de inserción si el sitio web solicitante se encuentra en un iframe. Por lo tanto, el campo "urls" puede contener un máximo de dos cadenas de URL delimitadas por una coma para especificar la URL solicitante y la de inserción, respectivamente. Si solo se especifica una URL, se otorgará acceso a los dispositivos USB correspondientes cuando la URL del sitio web solicitante coincida con esta URL, independientemente del estado de inserción. Las URL del campo "urls" deben ser URL válidas. De lo contrario, la política se ignorará.
 
         Si no se asigna ningún valor a esta política, se usará en todos los sitios web el valor general predeterminado (sin acceso automático).</translation>
 <translation id="8631434304112909927">hasta la versión <ph name="UNTIL_VERSION" /></translation>
@@ -4447,7 +4447,6 @@
 <translation id="8798099450830957504">Predeterminado</translation>
 <translation id="8800453707696044281">Define un porcentaje personalizado de la parada de carga de la batería</translation>
 <translation id="8801680448782904838">Informar al usuario de que es necesario o recomendable reiniciar el navegador o el dispositivo</translation>
-<translation id="8802816494059596691">Los nombres de host que se especifican en esta lista quedarán exentos de la comprobación de la política de HSTS, que podría actualizar las solicitudes de http a https. Esta política solo admite nombres de host de una sola etiqueta. Los nombres de host deben seguir el canon de formato: cada IDN debe codificarse en su formato de etiqueta A y todas las letras ASCII deben ser minúsculas. Esta política solo se aplica a los nombres de host que se especifican en esta lista; no se aplica a sus subdominios.</translation>
 <translation id="8818173863808665831">Informa de la ubicación geográfica del dispositivo.
 
      Si no se establece esta política o se establece el valor "false", no se informará de la ubicación.</translation>
diff --git a/components/policy/resources/policy_templates_fr.xtb b/components/policy/resources/policy_templates_fr.xtb
index 38722bf..112f973 100644
--- a/components/policy/resources/policy_templates_fr.xtb
+++ b/components/policy/resources/policy_templates_fr.xtb
@@ -1379,7 +1379,7 @@
           Si cette règle est définie sur une chaîne non vide, cette chaîne devient le nom de la destination <ph name="PRODUCT_NAME" />. Sinon, le nom de la destination est le nom de l'appareil. Si cette règle n'est pas définie, le nom de la destination est celui de l'appareil, et le propriétaire de l'appareil (ou un utilisateur du domaine gérant l'appareil) peut le modifier. Le nom est limité à 24 caractères.</translation>
 <translation id="3331950121151548952">Liste des domaines pour lesquels le contenu importé doit être vérifié afin de détecter d'éventuels logiciels malveillants.  Cette règle n'est utilisée que si la règle <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" /> est définie sur une valeur autorisant ou imposant la vérification des importations à la recherche d'éventuels logiciels malveillants.
 
-      Si cette règle n'est pas définie ou si elle est configurée, mais qu'aucun domaine n'est indiqué dans la liste, aucun contenu importé n'est vérifié pour déterminer s'il contient ou non un logiciel malveillant.
+      Si cette règle n'est pas définie ou si aucun domaine n'est indiqué dans la liste, aucun contenu importé n'est vérifié pour déterminer s'il contient ou non un logiciel malveillant.
       </translation>
 <translation id="3335468714959531450">Permet de définir une liste de formats d'URL spécifiant les sites autorisés à utiliser des cookies.
 
@@ -1907,7 +1907,7 @@
           Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier ni l'ignorer.
 
           Si elle n'est pas définie, le clic automatique est désactivé au départ, mais les utilisateurs peuvent l'activer à tout moment.</translation>
-<translation id="4215197846797661927">Permet de définir le jour de recharge de la batterie en mode avancé.
+<translation id="4215197846797661927">Permet de définir la configuration quotidienne de recharge de la batterie en mode avancé.
 
           Cette règle n'est utilisée que si la règle <ph name="DEVICE_ADVANCED_BATTERY_CHARGE_MODE_ENABLED_NAME" /> est définie sur "True".
 
@@ -1984,11 +1984,11 @@
           Le message d'avertissement ne s'affiche que si le dépassement du délai d'inactivité entraîne une déconnexion ou l'arrêt de l'appareil.</translation>
 <translation id="4342827592971649626">Cette règle permet de contrôler l'analyse approfondie des téléchargements des utilisateurs à l'aide de la navigation sécurisée. Si cette règle n'est pas configurée ou si elle est définie sur le paramètre par défaut ("Ne pas analyser les fichiers"), les téléchargements des utilisateurs ne sont pas analysés par la navigation sécurisée.
 
-      Si cette règle est définie sur "Interdire l'analyse des fichiers", les utilisateurs ne sont pas autorisés à analyser leurs téléchargements. Ce paramètre est différent de celui par défaut, dans la mesure où certains utilisateurs (comme les utilisateurs de la Protection Avancée) peuvent envoyer leurs téléchargements pour analyse. Avec ce paramètre, ces utilisateurs ne peuvent donc pas analyser leurs fichiers.
+      Si cette règle est définie sur "Interdire l'analyse des fichiers", les utilisateurs ne sont pas autorisés à analyser leurs téléchargements. Ce paramètre est différent de celui par défaut, qui permet à certains utilisateurs (comme les utilisateurs de la Protection Avancée) d'envoyer leurs téléchargements pour analyse. Ce paramètre empêche ces utilisateurs d'analyser leurs fichiers.
 
       Si cette règle est définie sur "Envoyer les téléchargements des utilisateurs pour analyse", les téléchargements des utilisateurs sont envoyés sur le réseau à la navigation sécurisée afin d'y être analysés pour détecter les éventuels logiciels malveillants.
 
-      Si cette règle est définie sur "Envoyer les importations des utilisateurs pour analyse", les importations des utilisateurs sont envoyés sur le réseau à la navigation sécurisée afin d'y être analysés pour détecter les éventuels logiciels malveillants.
+      Si cette règle est définie sur "Envoyer les importations des utilisateurs pour analyse", les importations des utilisateurs sont envoyées sur le réseau à la navigation sécurisée afin d'y être analysées pour détecter les éventuels logiciels malveillants.
 
       Si cette règle est définie sur "Envoyer les importations et les téléchargements des utilisateurs pour analyse", le produit se comporte conformément aux règles indiquées sous "Envoyer les importations des utilisateurs pour analyse" et "Envoyer les téléchargements des utilisateurs pour analyse".
 
@@ -2587,9 +2587,9 @@
       Si vous définissez cette règle, les utilisateurs ne peuvent pas la modifier ni l'ignorer.
 
       Si la règle n'est pas définie, l'utilisateur peut choisir une image à afficher sur le bureau et en arrière-plan de l'écran de connexion.</translation>
-<translation id="5437214086679373363">Permet de déterminer si les utilisateurs sont autorisés ou non à importer ou à télécharger des fichiers protégés par un mot de passe lorsqu'une analyse est requise.  Cette restriction ne s'applique qu'aux fichiers nécessitant une analyse comme défini par <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />, <ph name="CHECK_CONTENT_COMPLIANCE_POLICY_NAME" /> et par les règles qui régissent la liste des domaines pour lesquels les vérifications sont activées.
+<translation id="5437214086679373363">Permet de déterminer si les utilisateurs sont autorisés ou non à importer ou à télécharger des fichiers protégés par un mot de passe lorsqu'une analyse est requise.  Cette restriction ne s'applique qu'aux fichiers nécessitant une analyse conformément à <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" />, <ph name="CHECK_CONTENT_COMPLIANCE_POLICY_NAME" /> et aux règles qui régissent la liste des domaines pour lesquels les vérifications sont activées.
 
-      Si cette règle est définie sur "Aucune", <ph name="PRODUCT_NAME" /> empêche l'utilisateur d'importer ou de télécharger des fichiers protégés par un mot de passe.
+      Si cette règle est définie sur "Aucun", <ph name="PRODUCT_NAME" /> empêche l'utilisateur d'importer ou de télécharger des fichiers protégés par un mot de passe.
 
       Si cette règle est définie sur "Autoriser les téléchargements", <ph name="PRODUCT_NAME" /> autorise l'utilisateur à télécharger des fichiers protégés par un mot de passe.
 
@@ -3525,7 +3525,7 @@
 
       Si cette règle n'est pas paramétrée, l'utilisateur pourra faire son propre choix.</translation>
 <translation id="7145335384492396213">Mode d'impression par code défini par défaut</translation>
-<translation id="7149042336307555519"> Types de connexion autorisés pour les mises à jour du système d'exploitation. En raison de leur taille, les mises à jour du système d'exploitation peuvent considérablement ralentir la connexion et entraînent parfois des frais supplémentaires. C'est pourquoi elles ne sont pas activées par défaut pour les types de connexion jugés onéreux (actuellement, seul le type de connexion au réseau mobile est concerné).
+<translation id="7149042336307555519"> Types de connexion autorisés pour les mises à jour du système d'exploitation. En raison de leur taille, les mises à jour du système d'exploitation peuvent considérablement ralentir la connexion et entraînent parfois des frais supplémentaires. Elles ne sont donc pas activées par défaut pour les types de connexion jugés coûteux (actuellement, seules les connexions mobiles sont concernées).
 
       Les identifiants des types de connexion reconnus sont <ph name="CONNECTION_TYPE_ETHERNET_NAME" />, <ph name="CONNECTION_TYPE_WIFI_NAME" /> et <ph name="CONNECTION_TYPE_CELLULAR_NAME" />.</translation>
 <translation id="7152605873936173525">Permet de contrôler le mode du résolveur DNS-over-HTTPS. Veuillez noter que cette règle ne définit que le mode par défaut pour chaque requête. Ce mode peut être ignoré pour les requêtes spéciales, telles que celles visant à résoudre un nom d'hôte de serveur DNS-over-HTTPS.
@@ -3562,13 +3562,13 @@
 <translation id="7185078796915954712">TLS 1.3</translation>
 <translation id="7187447094921703950">Permet d'activer la règle de gestion de l'alimentation avec passage à l'alimentation via la batterie.
 
-          Le passage à l'alimentation via la batterie est une règle d'économie d'énergie qui réduit au maximum le recours au courant alternatif pendant les pics d'utilisation au cours de la journée. Il est possible de définir une heure de début et de fin de ce mode pour chaque jour de la semaine. À ces périodes, le système fonctionnera sur la batterie, même si l'appareil est branché sur le courant alternatif, tant que le niveau de la batterie reste au-dessus du seuil défini. À la fin de la plage spécifiée, le système fonctionnera sur le courant alternatif s'il y est branché, mais ne rechargera pas la batterie. Le système reprendra son fonctionnement habituel en utilisant le courant alternatif et en rechargeant la batterie à l'heure de début de charge spécifiée.
+          Le passage à l'alimentation via la batterie est une règle d'économie d'énergie qui limite le recours à l'alimentation secteur pendant les pics d'utilisation au cours de la journée. Il est possible de définir l'heure de début et de fin de ce mode pour chaque jour de la semaine. Durant ces plages horaires, le système fonctionnera sur la batterie, même si l'appareil est branché sur le secteur, tant que le niveau de la batterie reste au-dessus du seuil défini. À la fin de la plage horaire programmée, le système fonctionnera sur le secteur s'il y est branché, mais ne rechargera pas la batterie. Le système reprendra son fonctionnement habituel en utilisant l'alimentation secteur et en rechargeant la batterie à l'heure programmée pour le début de la charge.
 
-          Si cette règle est définie sur "True", et si les règles <ph name="DEVICE_POWER_PEAK_SHIFT_BATTERY_THRESHOLD_NAME" /> et <ph name="DEVICE_POWER_PEAK_SHIFT_DAY_CONFIG_NAME" /> sont configurées, le passage à l'alimentation via la batterie est activé s'il est compatible avec l'appareil.
+          Si cette règle est définie sur "True", et si les règles <ph name="DEVICE_POWER_PEAK_SHIFT_BATTERY_THRESHOLD_NAME" /> et <ph name="DEVICE_POWER_PEAK_SHIFT_DAY_CONFIG_NAME" /> sont configurées, le passage à l'alimentation via la batterie est toujours activé s'il est compatible avec l'appareil.
 
           Si cette règle est définie sur "False", le passage à l'alimentation via la batterie est désactivé.
 
-          Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier ni l'ignorer.
+          Si vous configurez cette règle, les utilisateurs ne peuvent ni la modifier ni l'ignorer.
 
           Si cette règle n'est pas configurée, le passage à l'alimentation via la batterie est désactivé au départ et ne peut être activé par l'utilisateur.</translation>
 <translation id="718956142899066210">Types de connexion autorisés pour les mises à jour</translation>
@@ -4226,7 +4226,7 @@
 
           Si cette règle n'est pas configurée, le paramètre est activé.</translation>
 <translation id="8382184662529825177">Autoriser l'utilisation de l'attestation à distance pour assurer la protection du contenu de l'appareil</translation>
-<translation id="8382693763260501307">Permet de gérer l'alimentation en mode avancé de recharge de la batterie.
+<translation id="8382693763260501307">Permet de gérer la recharge de la batterie en mode avancé.
 
           Le mode avancé de recharge de la batterie permet à l'utilisateur de maximiser les performances de la batterie. Pour ce faire, le système combine un algorithme de recharge standard avec d'autres techniques en dehors des heures de travail. Pendant les heures de travail, une option de recharge rapide est utilisée. La batterie est alors rechargée plus rapidement, et le niveau de charge complète est atteint plus vite. Pour chaque jour, vous pouvez définir l'heure à partir de laquelle le système est le plus sollicité, ainsi que la durée de cette utilisation intensive.
 
@@ -4234,7 +4234,7 @@
 
           Si cette règle est définie sur "False", ce mode est toujours désactivé.
 
-          Si vous configurez cette règle, les utilisateurs ne peuvent pas la modifier ni l'ignorer.
+          Si vous configurez cette règle, les utilisateurs ne peuvent ni la modifier ni l'ignorer.
 
           Si cette règle n'est pas configurée, ce mode est désactivé et ne peut être activé par l'utilisateur.</translation>
 <translation id="838870586332499308">Activer l'itinérance des données</translation>
@@ -4448,7 +4448,6 @@
 <translation id="8798099450830957504">Par défaut</translation>
 <translation id="8800453707696044281">Personnaliser le pourcentage auquel la recharge de la batterie doit s'arrêter</translation>
 <translation id="8801680448782904838">Avertir un utilisateur qu'un redémarrage du navigateur ou de l'appareil est recommandé ou exigé</translation>
-<translation id="8802816494059596691">Les noms d'hôte indiqués dans cette liste seront exemptés de la vérification de la règle HSTS susceptible de remplacer les requêtes HTTP en requêtes HTTPS. Seuls les noms d'hôte sans extension sont autorisés dans cette règle. Les noms d'hôtes doivent être mis sous forme canonique : tous les noms de domaine internationalisés (IDN) doivent être convertis dans leur format d'étiquette A, et toutes les lettres ASCII doivent être en minuscules. Cette règle ne s'applique qu'aux noms d'hôte spécifiques indiqués. Elle ne s'applique pas aux sous-domaines des noms spécifiés.</translation>
 <translation id="8818173863808665831">Permet d'indiquer l'emplacement géographique de l'appareil.
 
       Si cette règle n'est pas définie, ou si la valeur "false" lui est attribuée, l'emplacement n'est pas indiqué.</translation>
diff --git a/components/policy/resources/policy_templates_id.xtb b/components/policy/resources/policy_templates_id.xtb
index e6ef33a..416f6d65 100644
--- a/components/policy/resources/policy_templates_id.xtb
+++ b/components/policy/resources/policy_templates_id.xtb
@@ -4293,7 +4293,6 @@
 <translation id="8798099450830957504">Default</translation>
 <translation id="8800453707696044281">Menetapkan nilai akhir pengisian daya baterai kustom dalam persen</translation>
 <translation id="8801680448782904838">Beri tahu pengguna bahwa meluncurkan ulang browser atau memulai ulang perangkat direkomendasikan atau diperlukan</translation>
-<translation id="8802816494059596691">Hostname yang ditentukan dalam daftar ini akan dikecualikan dari pemeriksaan kebijakan HSTS yang berpotensi mengupgrade permintaan dari http ke https. Hanya hostname berlabel tunggal yang diizinkan dalam kebijakan ini. Hostname harus dikanonikalisasi: semua IDN harus dikonversi ke format berlabel A, dan semua huruf ASCII harus berupa huruf kecil. Kebijakan ini hanya berlaku untuk hostname tertentu yang sudah ditentukan; tidak berlaku bagi subdomain nama yang ditentukan.</translation>
 <translation id="8818173863808665831">Melaporkan lokasi geografis perangkat.
 
       Jika kebijakan tidak disetel, atau disetel ke false, lokasi tidak akan dilaporkan.</translation>
diff --git a/components/policy/resources/policy_templates_it.xtb b/components/policy/resources/policy_templates_it.xtb
index 5c0086d..0b7e14a 100644
--- a/components/policy/resources/policy_templates_it.xtb
+++ b/components/policy/resources/policy_templates_it.xtb
@@ -3684,11 +3684,11 @@
 <translation id="7625498350540361483">
       Se il criterio è impostato su true, <ph name="PRODUCT_NAME" /> può raccogliere log eventi WebRTC dai servizi Google (ad es., Google Meet) e caricare i log su Google.
 
-      Se la norma è impostata su false, <ph name="PRODUCT_NAME" /> non può raccogliere né caricare questi log.
+      Se il criterio è impostato su false, <ph name="PRODUCT_NAME" /> non può raccogliere né caricare questi log.
 
-      Se il criterio non è impostato, fino alla versione M67 inclusa, <ph name="PRODUCT_NAME" /> non può raccogliere né caricare questi log.
+      Se il criterio non è impostato, fino alla versione M76 inclusa, <ph name="PRODUCT_NAME" /> non può raccogliere né caricare questi log.
 
-      Se il criterio non è impostato, a partire dalla versione M77, <ph name="PRODUCT_NAME" /> può raccogliere o caricare questi log per impostazione predefinita, se il profilo del browser è considerato gestito, ovvero se il profilo riceve norme a livello di cloud o macchina e se non si tratta di un profilo secondario, temporaneo, di accesso o in incognito.
+      Se il criterio non è impostato, a partire dalla versione M77, <ph name="PRODUCT_NAME" /> può raccogliere o caricare questi log per impostazione predefinita se il profilo del browser è considerato gestito, ovvero se il profilo riceve criteri a livello di cloud o macchina e se non si tratta di un profilo secondario, temporaneo, di accesso o in incognito.
 
       Questi log contengono informazioni diagnostiche utili per il debug dei problemi relativi a chiamate vocali o videochiamate in Chrome, ad esempio data/ora e dimensioni dei pacchetti RTP inviati e ricevuti, feedback sulla congestione della rete, nonché metadati su tempo e qualità dei frame audio e video. Questi log non contengono l'audio o i video delle chiamate.
 
@@ -4276,7 +4276,6 @@
 <translation id="8800453707696044281">Imposta il valore percentuale personalizzato raggiunto il quale viene interrotta la ricarica della batteria</translation>
 <translation id="8801680448782904838">Invia a un utente una notifica che comunica che è consigliato o necessario eseguire un riavvio del browser o del dispositivo
 </translation>
-<translation id="8802816494059596691">I nomi host specificati in questo elenco saranno esenti dal controllo dei criteri HSTS che potrebbero eseguire l'upgrade delle richieste da http a https. Solo i nomi host con etichetta singola sono consentiti in questo criterio. I nomi host devono essere in forma canonica: ogni IDN deve essere convertito nel relativo formato A-label e tutte le lettere ASCII devono essere minuscole. Questo criterio si applica soltanto ai nomi host specificati e non ai relativi sottodomini.</translation>
 <translation id="8818173863808665831">Consente di segnalare la posizione geografica del dispositivo.
 
 Se la norma non viene impostata o viene impostata su false, la posizione non viene segnalata.</translation>
diff --git a/components/policy/resources/policy_templates_ja.xtb b/components/policy/resources/policy_templates_ja.xtb
index cce951d..700f4d2 100644
--- a/components/policy/resources/policy_templates_ja.xtb
+++ b/components/policy/resources/policy_templates_ja.xtb
@@ -3708,7 +3708,7 @@
 
       ポリシーが未設定の場合、M76 以下では、<ph name="PRODUCT_NAME" /> によるログの収集とアップロードは行われません。
 
-      ポリシーが未設定のとき、M77 以降では、ブラウザ プロフィールが管理対象とみなされる場合には <ph name="PRODUCT_NAME" /> によるログの収集とアップロードがデフォルトで行われます(プロフィールでクラウドレベルかマシンレベルのポリシーを受信し、子プロフィール、一時プロフィール、ログイン プロフィール、シークレット プロフィールでない場合)。
+      ポリシーが未設定のとき、M77 以降では、ブラウザ プロフィールが管理対象とみなされる場合(プロフィールでクラウドレベルかマシンレベルのポリシーを受信し、子プロフィール、一時プロフィール、ログイン プロフィール、シークレット プロフィールでない場合)には <ph name="PRODUCT_NAME" /> によるログの収集とアップロードがデフォルトで行われます。
 
       これらのログには、送受信された RTP パケットの時間とサイズ、ネットワークの輻輳に関するフィードバック、音声および動画フレームの時間と品質に関するメタデータなど、Chrome での音声や動画の呼び出しに関する問題をデバッグする際に役立つ診断情報が含まれます。呼び出された音声や動画のコンテンツは含まれません。.
 
@@ -4246,7 +4246,7 @@
 
         USB のアクセス許可モデルでは、リクエスト元のサイトの URL(以下「リクエスト元 URL」)と最上位フレームサイトの URL(以下「埋め込み元 URL」)を使用して、リクエスト元 URL に USB デバイスへのアクセスを許可します。リクエスト元のサイトが iframe 内で読み込まれている場合、リクエスト元 URL と埋め込み元 URL は異なる可能性があります。このため、「urls」フィールドには、リクエスト元 URL と埋め込み元 URL の両方を指定できるよう、カンマ区切りで URL 文字列を 2 つまで含めることができます。URL を 1 つだけ指定した場合、対応する USB デバイスへのアクセスは、リクエスト元のサイトの URL がこの URL と一致した場合に、埋め込みの状態にかかわらず許可されます。「urls」フィールドの URL には必ず有効な URL を指定してください。無効な URL を指定した場合、このポリシーは無視されます。
 
-        このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値が使用されます(自動アクセスではありません)。</translation>
+        このポリシーが未設定の場合は、すべてのサイトでグローバルなデフォルト値(自動アクセスなし)が使用されます。</translation>
 <translation id="8631434304112909927">バージョン <ph name="UNTIL_VERSION" /> まで</translation>
 <translation id="8649763579836720255">Chrome OS デバイスは、Chrome OS CA(デバイスが保護コンテンツを再生可能であることを証明)によって発行される証明書を取得するため、リモート認証(確認済みアクセス)を使用できます。これには、デバイスを特定するハードウェア署名情報を Chrome OS CA に送信する処理も含まれます。
 
@@ -4310,7 +4310,6 @@
 <translation id="8798099450830957504">既定</translation>
 <translation id="8800453707696044281">バッテリー充電のカスタムの充電停止設定(%)を行う</translation>
 <translation id="8801680448782904838">ブラウザまたはデバイスの再起動が推奨されるか必要であることをユーザーに通知する</translation>
-<translation id="8802816494059596691">このリストに記されたホスト名については、HTTP から HTTPS へのアップグレード リクエストになる可能性がある HSTS ポリシー チェックから除外されます。このポリシーでは、単一ラベルのホスト名のみが許可されます。ホスト名は正規化されている必要があります。IDN はすべて A ラベル形式に対応し、すべての ASCII 文字列が小文字である必要があります。ポリシーが適用されるのは指定された特定のホスト名のみです。指定された名前のサブドメインには適用されません。</translation>
 <translation id="8818173863808665831">デバイスの地理的位置をレポートします。
 
       このポリシーを設定していない場合、あるいは false に設定している場合、位置はレポートされません。</translation>
diff --git a/components/policy/resources/policy_templates_ko.xtb b/components/policy/resources/policy_templates_ko.xtb
index 7b2442cb7..1631c86 100644
--- a/components/policy/resources/policy_templates_ko.xtb
+++ b/components/policy/resources/policy_templates_ko.xtb
@@ -4471,7 +4471,6 @@
 <translation id="8798099450830957504">기본값</translation>
 <translation id="8800453707696044281">배터리 충전을 중단할 지점을 퍼센트로 맞춤설정합니다.</translation>
 <translation id="8801680448782904838">사용자에게 브라우저 재실행 또는 기기 재시작이 필요하거나 권장된다고 알림</translation>
-<translation id="8802816494059596691">이 목록에 지정된 호스트 이름은 http에서 https로 요청을 업그레이드할 가능성이 있는 HSTS 정책 검사에서 제외됩니다. 이 정책에서는 단일 라벨 호스트 이름만 허용됩니다. 호스트 이름은 표준화되어야 합니다. 모든 IDN은 A 라벨 형식으로 표현되어야 하며 모든 ASCII 문자는 소문자여야 합니다. 이 정책은 지정된 호스트 이름에만 적용되며 지정된 이름의 하위 도메인에는 적용되지 않습니다.</translation>
 <translation id="8818173863808665831">기기의 지리적 위치를 신고합니다.
 
       정책이 설정되지 않았거나 잘못 설정되어 있으면 위치가 신고되지 않습니다.</translation>
diff --git a/components/policy/resources/policy_templates_nl.xtb b/components/policy/resources/policy_templates_nl.xtb
index 7e251ade..8b26d8b 100644
--- a/components/policy/resources/policy_templates_nl.xtb
+++ b/components/policy/resources/policy_templates_nl.xtb
@@ -108,6 +108,17 @@
           <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">De protocolhandlers die via dit beleid zijn ingesteld, worden niet gebruikt bij de verwerking van Android-intenties.</translation>
 <translation id="1118093128235245168">Toestaan dat sites de gebruiker vragen om toegang te verlenen tot een aangesloten USB-apparaat</translation>
+<translation id="1123594119609921068">De standaardstatus van de toegankelijkheidsfunctie voor gesproken feedback op het inlogscherm instellen.
+
+          Als dit beleid is ingesteld op True, wordt gesproken feedback ingeschakeld als het inlogscherm wordt weergegeven.
+
+          Als dit beleid is ingesteld op False, wordt gesproken feedback uitgeschakeld als het inlogscherm wordt weergegeven.
+
+          Als je dit beleid instelt, kunnen gebruikers het tijdelijk overschrijven door gesproken feedback in of uit te schakelen. De keuze van de gebruiker is echter niet permanent en de standaardinstelling wordt hersteld als het inlogscherm opnieuw wordt weergegeven of de gebruiker gedurende een minuut niet actief is op het inlogscherm.
+
+          Als dit beleid niet is ingesteld, wordt gesproken feedback uitgeschakeld als het inlogscherm voor het eerst wordt weergegeven. Gebruikers kunnen gesproken feedback op elk gewenst moment in- of uitschakelen. De status op het inlogscherm is van toepassing op alle gebruikers.
+
+          Opmerking: <ph name="DEVICE_LOGIN_SCREEN_SPOKEN_FEEDBACK_ENABLED_POLICY_NAME" /> overschrijft dit beleid als het is opgegeven.</translation>
 <translation id="1128903365609589950">Hiermee wordt de directory geconfigureerd die <ph name="PRODUCT_NAME" /> gebruikt om gecachte bestanden op schijf op te slaan.
 
       Als je dit beleid instelt, gebruikt <ph name="PRODUCT_NAME" /> de opgegeven directory, ongeacht of de gebruiker de optie '--disk-cache-dir' heeft ingesteld. Als je gegevensverlies of andere onverwachte fouten wilt voorkomen, moet dit beleid niet worden ingesteld op de hoofddirectory van een volume of op een directory die wordt gebruikt voor andere doeleinden, omdat <ph name="PRODUCT_NAME" /> de content ervan beheert.
@@ -803,7 +814,7 @@
 
       Als het beleid is ingesteld op 'True', worden gebeurtenissen geregistreerd.
       Als het beleid is ingesteld op 'False' of niet is ingesteld, worden gebeurtenissen niet geregistreerd.</translation>
-<translation id="2440773021691931148">Hiermee worden hardwarestatistieken en -ID's met betrekking tot de stroomstatus gerapporteerd.
+<translation id="2440773021691931148">Hiermee worden hardwarestatistieken en -ID's over de stroomstatus gerapporteerd.
 
       Als het beleid is ingesteld op False of niet is ingesteld, worden de statistieken niet gerapporteerd.
       Als het beleid is ingesteld op True, worden de statistieken gerapporteerd.</translation>
@@ -1077,7 +1088,7 @@
       Wanneer dit beleid is uitgeschakeld of geen perioden bevat, geldt het volgende:
       Er worden geen automatische updatecontroles geblokkeerd door dit beleid, maar deze kunnen wel worden geblokkeerd door andere beleidsregels. Deze functie is alleen ingeschakeld op Chrome-apparaten die zijn geconfigureerd als kiosken die automatisch worden gestart. Andere apparaten worden niet beperkt door dit beleid.</translation>
 <translation id="2823870601012066791">Locatie van Windows-register voor <ph name="PRODUCT_OS_NAME" />-clients:</translation>
-<translation id="2824715612115726353">Incognitomodus inschakelen</translation>
+<translation id="2824715612115726353">Incognito aanzetten</translation>
 <translation id="2836621397261130126">Regelt of goedkeuring op basis van KDC-beleid wordt gerespecteerd om te bepalen of <ph name="KERBEROS" />-tickets worden gedelegeerd.
 
           Als dit beleid is ingesteld op True, respecteert de HTTP-verificatie de goedkeuring op basis van KDC-beleid. Chrome delegeert gegevens alleen als het KDC-beleid <ph name="OK_AS_DELEGATE" /> instelt op een serviceticket. Zie https://tools.ietf.org/html/rfc5896.html voor meer informatie. De service moet ook overeenkomen met het beleid 'AuthNegotiateDelegateWhitelist'.
@@ -1702,6 +1713,15 @@
 
       Raadpleeg https://www.chromium.org/administrators/policy-list-3/user-data-directory-variables voor een lijst met variabelen die kunnen worden gebruikt.</translation>
 <translation id="3911737181201537215">Dit beleid is niet van invloed op de logboekregistratie van Android.</translation>
+<translation id="3912092044353890761">De toegankelijkheidsfunctie voor het virtuele toetsenbord op het inlogscherm inschakelen.
+
+          Als dit beleid is ingesteld op True, is het virtuele toetsenbord altijd ingeschakeld op het inlogscherm.
+
+          Als dit beleid is ingesteld op False, is het virtuele toetsenbord altijd uitgeschakeld op het inlogscherm.
+
+          Als je dit beleid instelt, kunnen gebruikers het niet wijzigen of overschrijven.
+
+          Als dit beleid niet is ingesteld, is het virtuele toetsenbord in eerste instantie uitgeschakeld op het inlogscherm. De gebruiker kan deze functie op elk gewenst moment inschakelen.</translation>
 <translation id="391531815696899618">Hiermee wordt synchronisatie van Google Drive in de app Bestanden van <ph name="PRODUCT_OS_NAME" /> uitgeschakeld wanneer de optie is ingesteld op 'True'. In dat geval worden geen gegevens naar Google Drive geüpload.
 
           Als de optie niet is ingesteld of is ingesteld op 'False', kunnen gebruikers bestanden naar Google Drive overzetten.</translation>
@@ -1862,11 +1882,31 @@
           Als je dit beleid instelt, kunnen gebruikers dit niet wijzigen of overschrijven.
 
           Als het beleid niet wordt ingesteld, worden de plaktoetsen eerst uitgeschakeld, maar kunnen deze op elk moment worden ingeschakeld door de gebruiker.</translation>
+<translation id="4169692397912242417">De toegankelijkheidsfunctie voor gesproken feedback op het inlogscherm inschakelen.
+
+          Als dit beleid is ingesteld op True, is gesproken feedback altijd ingeschakeld op het inlogscherm.
+
+          Als dit beleid is ingesteld op False, is gesproken feedback altijd uitgeschakeld op het inlogscherm.
+
+          Als je dit beleid instelt, kunnen gebruikers het niet wijzigen of overschrijven.
+
+          Als dit beleid niet is ingesteld, is gesproken feedback in eerste instantie uitgeschakeld op het inlogscherm. De gebruiker kan deze functie op elk gewenst moment inschakelen.</translation>
 <translation id="4171331498167688968">Als het beleid is ingesteld op False, is het mogelijk om via software van derden uitvoerbare code in te voegen in de processen van Chrome. Als het beleid niet is ingesteld of is ingesteld op True, kan er geen uitvoerbare code via software van derden worden ingevoegd in de processen van Chrome.
 
       Ongeacht de waarde van dit beleid voorkomt de browser momenteel niet dat software van derden uitvoerbare code invoegt in zijn processen op een computer die deel uitmaakt van een <ph name="MS_AD_NAME" />-domein.</translation>
 <translation id="4183229833636799228">Standaardinstelling voor <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="4192388905594723944">URL voor het valideren van verificatietoken voor client voor externe toegang</translation>
+<translation id="420007931282384740">De standaardstatus van de toegankelijkheidsfunctie voor het schermtoetsenbord op het inlogscherm instellen.
+
+          Als dit beleid is ingesteld op True, wordt het schermtoetsenbord ingeschakeld als het inlogscherm wordt weergegeven.
+
+         Als dit beleid is ingesteld op False, wordt het schermtoetsenbord uitgeschakeld als het inlogscherm wordt weergegeven.
+
+          Als je dit beleid instelt, kunnen gebruikers het tijdelijk overschrijven door het schermtoetsenbord in of uit te schakelen. De keuze van de gebruiker is echter niet permanent en de standaardinstelling wordt hersteld als het inlogscherm opnieuw wordt weergegeven of de gebruiker gedurende een minuut niet actief is op het inlogscherm.
+
+          Als dit beleid niet is ingesteld, wordt het schermtoetsenbord uitgeschakeld als het inlogscherm voor de eerste keer wordt weergegeven. Gebruikers kunnen het schermtoetsenbord op elk gewenst moment in- of uitschakelen. De status op het inlogscherm is van toepassing op alle gebruikers.
+
+          Opmerking: <ph name="DEVICE_LOGIN_SCREEN_VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> overschrijdt dit beleid als het is opgegeven.</translation>
 <translation id="4203389617541558220">De bedrijfstijd van het apparaat beperken door automatisch opnieuw opstarten te plannen.
 
       Wanneer dit beleid is ingesteld, bepaalt het de duur van de bedrijfstijd van het apparaat waarna het automatisch opnieuw opstarten is gepland.
@@ -2467,6 +2507,7 @@
 <translation id="5323128137188992869">Toestaan dat content wordt gecast naar het apparaat via <ph name="PRODUCT_NAME" />.
 
           Als dit beleid is ingesteld op 'False', kunnen gebruikers geen content casten naar hun apparaat. Als dit beleid is ingesteld op 'True', mogen gebruikers content casten. Als dit beleid niet is ingesteld, mogen gebruikers geen content naar geregistreerde Chrome OS-apparaten casten, maar wel naar niet-geregistreerde apparaten.</translation>
+<translation id="5323200200131319468">Gesproken feedback op het inlogscherm inschakelen</translation>
 <translation id="5325625566921364045">Hiermee wordt bepaald hoe <ph name="PRODUCT_NAME" /> gegevens die worden geüpload, gedownload, geplakt vanaf het klembord of gesleept en neergezet, controleert op naleving van bedrijfsregels.
 
       Als dit beleid niet is ingesteld of is ingesteld op 'Geen', controleert <ph name="PRODUCT_NAME" /> gegevens niet op naleving.
@@ -2665,6 +2706,7 @@
 <translation id="5530347722229944744">Potentieel gevaarlijke downloads blokkeren</translation>
 <translation id="5535973522252703021">Witte lijst voor Kerberos-delegatieserver</translation>
 <translation id="554903022911579950">Kerberos</translation>
+<translation id="555022085242359084">Hoog contrast op het inlogscherm inschakelen</translation>
 <translation id="555077880566103058">Alle sites toestaan om de <ph name="FLASH_PLUGIN_NAME" />-plug-in automatisch uit te voeren</translation>
 <translation id="5559079916187891399">Dit beleid is niet van invloed op Android-apps.</translation>
 <translation id="5560039246134246593">Een parameter toevoegen aan het ophalen van de seed voor varianten in <ph name="PRODUCT_NAME" />.
@@ -2931,6 +2973,7 @@
 <translation id="6089679180657323464">Hiermee beheer je de instellingen voor wilco DTC.</translation>
 <translation id="6091233616732024397">Gebruikers dwingen in te loggen om de browser te gebruiken</translation>
 <translation id="6093156968240188330">Externe gebruikers toestaan om een vensters met verhoogde bevoegdheid te gebruiken tijdens een sessie voor ondersteuning op afstand</translation>
+<translation id="6095048925836115505">Het virtuele toetsenbord op het inlogscherm inschakelen</translation>
 <translation id="6095999036251797924">Specificeert de periode zonder gebruikersinvoer waarna het scherm wordt vergrendeld wanneer het apparaat op netstroom of op de batterij werkt.
 
           Wanneer de periode is ingesteld op een waarde groter dan nul, is dit de tijd dat de gebruiker inactief moet zijn voordat <ph name="PRODUCT_OS_NAME" /> het scherm vergrendelt.
@@ -3935,11 +3978,31 @@
 
       Als je dit beleid niet instelt, gebruikt <ph name="PRODUCT_NAME" /> de standaardwaarde van 5000 milliseconden.</translation>
 <translation id="7841880500990419427">Minimale TLS-versie om op terug te vallen</translation>
+<translation id="7842317008224536842">De standaardstatus van de toegankelijkheidsfunctie 'Modus voor hoog contrast' op het inlogscherm instellen.
+
+          Als dit beleid is ingesteld op True, wordt de modus voor hoog contrast ingeschakeld als het inlogscherm wordt weergegeven.
+
+          Als dit beleid is ingesteld op False, wordt de modus voor hoog contrast uitgeschakeld als het inlogscherm wordt weergegeven.
+
+          Als je dit beleid instelt, kunnen gebruikers het tijdelijk overschrijven door de modus voor hoog contrast in of uit te schakelen. De keuze van de gebruiker is echter niet permanent en de standaardinstelling wordt hersteld als het inlogscherm opnieuw wordt weergegeven of de gebruiker gedurende een minuut niet actief is op het inlogscherm.
+
+          Als dit beleid niet is ingesteld, wordt de modus voor hoog contrast uitgeschakeld als het inlogscherm voor de eerste keer wordt weergegeven. Gebruikers kunnen de modus voor hoog contrast op elk gewenst moment in- of uitschakelen. De status op het inlogscherm is van toepassing op alle gebruikers.
+
+          Opmerking: <ph name="DEVICE_LOGIN_SCREEN_HIGH_CONTRAST_ENABLED_POLICY_NAME" /> overschrijft dit beleid als het is opgegeven.</translation>
 <translation id="7858404742201086014">Als je deze instelling inschakelt, worden verouderde plug-ins gebruikt als normale plug-ins.
 
       Als je deze instelling uitschakelt, worden verouderde plug-ins niet gebruikt en wordt gebruikers niet gevraagd of ze deze willen uitvoeren.
 
       Als deze instelling niet is ingesteld, wordt gebruikers gevraagd of ze verouderde plug-ins willen uitvoeren.</translation>
+<translation id="7863947545897944083">De toegankelijkheidsfunctie voor hoog contrast op het inlogscherm inschakelen.
+
+          Als dit beleid is ingesteld op True, is hoog contrast altijd ingeschakeld op het inlogscherm.
+
+          Als dit beleid is ingesteld op False, is hoog contrast altijd uitgeschakeld op het inlogscherm.
+
+          Als je dit beleid instelt, kunnen gebruikers het niet wijzigen of overschrijven.
+
+          Als dit beleid niet is ingesteld, is hoog contrast in eerste instantie uitgeschakeld op het inlogscherm. De gebruiker kan deze functie op elk gewenst moment inschakelen.</translation>
 <translation id="787125417158068494">Als dit is ingesteld op SyncDisabled of niet is geconfigureerd, zijn certificaten van <ph name="PRODUCT_OS_NAME" /> niet beschikbaar voor ARC-apps.
 
       Als dit is ingesteld op CopyCaCerts, zijn alle door ONC geïnstalleerde CA-certificaten met <ph name="WEB_TRUSTED_BIT" /> beschikbaar voor ARC-apps.</translation>
@@ -4341,7 +4404,7 @@
       Gebruikers kunnen deze instelling niet wijzigen of overschrijven.</translation>
 <translation id="8625234016727663537">Hiermee kun je een lijst met URL's instellen die aangeven welke sites automatisch toegang krijgen tot een USB-apparaat met de opgegeven leverancier- en product-ID's op het inlogscherm. Het beleid is alleen geldig als elk item in de lijst zowel apparaten als URL's bevat. Elk item in apparaten kan een veld voor leverancier-ID en een veld voor product-ID bevatten. Een ID die is weggelaten, wordt als jokerteken behandeld, met één uitzondering: er mag geen product-ID worden opgegeven zonder dat er ook een leverancier-ID is opgegeven. Anders is het beleid niet geldig. Ongeldige beleidswaarden worden genegeerd.
 
-        Het USB-rechtenmodel gebruikt de URL van de site die de aanvraag indient ('aanvragende URL') en de URL van de framesite op hoofdniveau ('insluitings-URL') om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal twee, door een komma gescheiden URL-tekenreeksen bevatten om respectievelijk de aanvragende URL en insluitings-URL op te geven. Als er slechts één URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven wanneer de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldig zijn. Als dit niet het geval is, wordt het beleid genegeerd.
+        Het USB-rechtenmodel gebruikt de URL van de site die de aanvraag indient ('aanvragende URL') en de URL van de framesite op hoofdniveau ('insluitings-URL') om de aanvragende URL toegang te geven tot het USB-apparaat. Als de aanvragende site in een iframe wordt geladen, is het mogelijk dat de aanvragende URL en de insluitings-URL niet hetzelfde zijn. Daarom kan het veld voor URL's maximaal twee, door een komma gescheiden URL-tekenreeksen bevatten om respectievelijk de aanvragende URL en insluitings-URL op te geven. Als er slechts één URL wordt opgegeven, wordt toegang tot de bijbehorende USB-apparaten gegeven als de URL van de aanvragende site overeenkomt met deze URL, ongeacht de insluitingsstatus. De URL's in het veld voor URL's moeten geldig zijn. Als dit niet het geval is, wordt het beleid genegeerd.
 
         Als dit beleid niet is ingesteld, wordt de algemene standaardwaarde gebruikt voor alle sites (geen automatische toegang).</translation>
 <translation id="8631434304112909927">tot versie <ph name="UNTIL_VERSION" /></translation>
@@ -4416,7 +4479,6 @@
 <translation id="8798099450830957504">Standaard</translation>
 <translation id="8800453707696044281">Een custom batterijoplaadstop opgeven in procenten</translation>
 <translation id="8801680448782904838">Een gebruiker laten weten dat het aanbevolen of vereist is om de browser of het apparaat opnieuw op te starten</translation>
-<translation id="8802816494059596691">De op deze lijst vermelde hostnamen zijn vrijgesteld van de controle van het HSTS-beleid die verzoeken kan upgraden van HTTP naar HTTPS. In dit beleid zijn alleen hostnamen met één label toegestaan. Hostnamen moeten een canonieke URL hebben: Eventuele IDN's moeten worden geconverteerd naar de A-labelindeling en alle ASCII-letters moeten kleine letters zijn. Dit beleid is alleen van toepassing op de vermelde specifieke hostnamen en is niet van toepassing op de subdomeinen van de vermelde namen.</translation>
 <translation id="8818173863808665831">De geografische locatie van het apparaat rapporteren.
 
       Als het beleid niet is ingesteld of is ingesteld op 'false', wordt de locatie niet gerapporteerd.</translation>
diff --git a/components/policy/resources/policy_templates_pt-BR.xtb b/components/policy/resources/policy_templates_pt-BR.xtb
index 2a7487a7..c200f09 100644
--- a/components/policy/resources/policy_templates_pt-BR.xtb
+++ b/components/policy/resources/policy_templates_pt-BR.xtb
@@ -106,6 +106,17 @@
           <ph name="PROXY_HELP_URL" />.</translation>
 <translation id="1117535567637097036">Os gerenciadores de protocolo definidos por esta política não são usados na manipulação de intents do Android.</translation>
 <translation id="1118093128235245168">Permitir que os sites peçam ao usuário para conceder acesso a um dispositivo USB conectado</translation>
+<translation id="1123594119609921068">Definir o estado padrão do recurso de acessibilidade de feedback falado na tela de login.
+
+          Se esta política for definida como verdadeira, o feedback falado ficará ativado quando a tela de login for exibida.
+
+          Se esta política for definida como falsa, o feedback falado ficará desativado quando a tela de login for exibida.
+
+          Se você definir esta política, os usuários poderão modificá-la temporariamente ativando ou desativando o feedback falado. No entanto, a escolha do usuário não é persistente, e o padrão será restaurado sempre que a tela de login for mostrada de novo ou o usuário ficar inativo na tela de login por um minuto.
+
+          Se esta política não for definida, o feedback falado ficará desativado quando a tela de login for exibida pela primeira vez. Os usuários poderão ativar ou desativar o feedback falado a qualquer momento, e o estado dele na tela de login será persistente entre eles.
+
+          Observação: se <ph name="DEVICE_LOGIN_SCREEN_SPOKEN_FEEDBACK_ENABLED_POLICY_NAME" /> for especificada, ela substituirá esta política.</translation>
 <translation id="1128903365609589950">Configura o diretório que o <ph name="PRODUCT_NAME" /> usará para armazenar arquivos em cache no disco.
 
       Se você definir esta política, o <ph name="PRODUCT_NAME" /> usará o diretório fornecido, independentemente de o usuário ter especificado a sinalização "--disk-cache-dir" ou não. Para evitar perda de dados ou erros inesperados, esta política não deve ser definida para um diretório raiz de volume ou um diretório usado para outros fins, pois o <ph name="PRODUCT_NAME" /> gerencia seus conteúdos.
@@ -1659,6 +1670,15 @@
 
       Consulte http://www.chromium.org/administrators/policy-list-3/user-data-directory-variables (link em inglês) para ver uma lista de variáveis que podem ser usadas.</translation>
 <translation id="3911737181201537215">Esta política não tem nenhum efeito sobre o registro feito pelo Android.</translation>
+<translation id="3912092044353890761">Ativar o recurso de acessibilidade de teclado virtual na tela de login.
+
+          Se esta política for definida como verdadeira, o teclado virtual sempre ficará ativado na tela de login.
+
+          Se esta política for definida como falsa, o teclado virtual sempre ficará desativado na tela de login.
+
+          Se você definir esta política, os usuários não poderão alterá-la ou substituí-la.
+
+          Se esta política não for definida, o teclado virtual ficará inicialmente desativado na tela de login, mas poderá ser ativado pelo usuário a qualquer momento.</translation>
 <translation id="391531815696899618">Desativa a sincronização do Google Drive no aplicativo Files do <ph name="PRODUCT_OS_NAME" /> quando definida como "true". Nesse caso, nenhum dado é transferido por upload para o Google Drive.
 
          Se não está definida como "false", os usuários podem transferir arquivos para o Google Drive.</translation>
@@ -1799,7 +1819,7 @@
 <translation id="4150201353443180367">Exibição</translation>
 <translation id="4157003184375321727">Informar a versão do sistema operacional e do firmware</translation>
 <translation id="4157594634940419685">Permitir acesso a impressoras CUPS nativas</translation>
-<translation id="4160962198980004898">Fonte de endereço MAC do dispositivo quando ancorado</translation>
+<translation id="4160962198980004898">Fonte de endereço MAC do dispositivo quando encaixado na base</translation>
 <translation id="4163705126749612234">Configura os nomes de domínio de cliente necessários que serão impostos aos clientes de acesso remoto e impede os usuários de alterá-los.
 
           Se esta configuração for ativada, apenas clientes de um dos domínios especificados poderão se conectar ao host.
@@ -1818,11 +1838,31 @@
           Se você definir esta política, o usuário não poderá alterá-la ou modificá-la.
 
           Se esta política não for definida, as teclas aderentes serão desativadas inicialmente, mas poderão ser ativadas pelo usuário a qualquer momento.</translation>
+<translation id="4169692397912242417">Ativar o recurso de acessibilidade de feedback falado na tela de login.
+
+          Se esta política for definida como verdadeira, o feedback falado sempre ficará ativado na tela de login.
+
+          Se esta política for definida como falsa, o feedback falado sempre ficará desativado na tela de login.
+
+          Se você definir esta política, os usuários não poderão alterá-la ou substituí-la.
+
+          Se esta política não for definida, o feedback falado ficará inicialmente desativado na tela de login, mas poderá ser ativado pelo usuário a qualquer momento.</translation>
 <translation id="4171331498167688968">Se a política for definida como falsa, o software de terceiros terá permissão para injetar um código executável nos processos do Chrome. Se a política não for definida ou for definida como verdadeira, o software de terceiros será impedido de injetar o código executável nos processos do Chrome.
 
       No momento, independentemente do valor desta política, o navegador não bloqueará a injeção de código executável por software de terceiros nos próprios processos em uma máquina conectada a um domínio do <ph name="MS_AD_NAME" />.</translation>
 <translation id="4183229833636799228">Configuração padrão de <ph name="FLASH_PLUGIN_NAME" /></translation>
 <translation id="4192388905594723944">URL para validação do token de autenticação do cliente de acesso remoto</translation>
+<translation id="420007931282384740">Definir o estado padrão do recurso de acessibilidade de teclado na tela de login.
+
+          Se esta política for definida como verdadeira, o teclado na tela ficará ativado quando a tela de login for exibida.
+
+          Se esta política for definida como falsa, o teclado na tela ficará desativado quando a tela de login for exibida.
+
+          Se você definir esta política, os usuários poderão modificá-la temporariamente ativando ou desativando o teclado na tela. No entanto, a escolha do usuário não é persistente, e o padrão será restaurado sempre que a tela de login for mostrada de novo ou o usuário ficar inativo na tela de login por um minuto.
+
+          Se esta política não for definida, o teclado na tela ficará desativado quando a tela de login for exibida pela primeira vez. Os usuários poderão ativar ou desativar o teclado na tela sempre que quiserem, e o estado dele na tela de login será persistente entre eles.
+
+          Observação: se <ph name="DEVICE_LOGIN_SCREEN_VIRTUAL_KEYBOARD_ENABLED_POLICY_NAME" /> for especificada, ela substituirá esta política.</translation>
 <translation id="4203389617541558220">Limitar tempo de execução do dispositivo agendando reinicializações automáticas.
 
       Quando esta política é definida, especifica o tempo de atividade do dispositivo, após o qual uma reinicialização automática é agendada.
@@ -2395,6 +2435,7 @@
 <translation id="5323128137188992869">Permite que o conteúdo seja transmitido usando o <ph name="PRODUCT_NAME" />.
 
           Se essa política for definida como falso, os usuários não poderão transmitir conteúdo para o dispositivo deles. Se essa política for definida como verdadeiro, os usuários poderão transmitir conteúdo. Se essa política não for definida, os usuários não poderão transmitir conteúdo para dispositivos Chrome OS inscritos, mas poderão transmitir para dispositivos não inscritos.</translation>
+<translation id="5323200200131319468">Ativar o feedback falado na tela de login.</translation>
 <translation id="5325625566921364045">Controla como o <ph name="PRODUCT_NAME" /> verifica a conformidade com as regras da empresa de dados enviados, transferidos por download, colados da área de transferência ou arrastados e soltos.
 
       Se esta política não for definida ou for definida como "Nenhum", o <ph name="PRODUCT_NAME" /> não verificará a conformidade de nenhum dado.
@@ -2580,6 +2621,7 @@
 <translation id="5530347722229944744">Bloquear downloads potencialmente perigosos</translation>
 <translation id="5535973522252703021">Lista branca do servidor de delegação Kerberos</translation>
 <translation id="554903022911579950">Kerberos</translation>
+<translation id="555022085242359084">Ativar o alto contraste na tela de login</translation>
 <translation id="555077880566103058">Permitir que todos os sites executem o plug-in <ph name="FLASH_PLUGIN_NAME" /> automaticamente</translation>
 <translation id="5559079916187891399">Esta política não tem nenhum efeito sobre apps Android.</translation>
 <translation id="5560039246134246593">Adicionar um parâmetro para buscar o termo-semente "Variações" no <ph name="PRODUCT_NAME" />.
@@ -2835,6 +2877,7 @@
 <translation id="6089679180657323464">Controla as configurações do controlador de telemetria e diagnósticos wilco.</translation>
 <translation id="6091233616732024397">Forçar o usuário a fazer login para usar o navegador</translation>
 <translation id="6093156968240188330">Permitir que usuários remotos interajam com janelas elevadas em sessões de assistência remota</translation>
+<translation id="6095048925836115505">Ativar o teclado virtual na tela de login.</translation>
 <translation id="6095999036251797924">Especifica o período de tempo de inatividade após o qual a tela deve ser bloqueada, quando o dispositivo é executado em energia AC ou bateria.
 
           Quando o período de tempo é definido para um valor maior que zero representa o período de tempo que o usuário precisa ficar inativo antes que o <ph name="PRODUCT_OS_NAME" /> bloqueie a tela.
@@ -3828,11 +3871,31 @@
 
       Se esta política não estiver definida, o <ph name="PRODUCT_NAME" /> usa o valor padrão de 5.000 milissegundos.</translation>
 <translation id="7841880500990419427">Versão TLS mínima para substituição</translation>
+<translation id="7842317008224536842">Definir o estado padrão do recurso de acessibilidade do modo de alto contraste na tela de login.
+
+          Se esta política for definida como verdadeira, o modo de alto contraste ficará ativado quando a tela de login for exibida.
+
+          Se esta política for definida como falsa, o modo de alto contraste ficará desativado quando a tela de login for exibida.
+
+          Se você definir esta política, os usuários poderão modificá-la temporariamente ativando ou desativando o modo de alto contraste. No entanto, a escolha do usuário não é persistente, e o padrão será restaurado sempre que a tela de login for mostrada de novo ou o usuário ficar inativo na tela de login por um minuto.
+
+          Se esta política não for definida, o modo de alto contraste será desativado quando a tela de login aparecer pela primeira vez. Os usuários poderão ativar ou desativar o modo de alto contraste a qualquer momento, e o estado dele na tela de login será persistente entre eles.
+
+          Observação: se <ph name="DEVICE_LOGIN_SCREEN_HIGH_CONTRAST_ENABLED_POLICY_NAME" /> for especificada, ela substituirá esta política.</translation>
 <translation id="7858404742201086014">Se você ativar esta configuração, plug-ins desatualizados serão utilizados como plug-ins normais.
 
       Se você desativar esta configuração, plug-ins desatualizados não serão utilizados, e não será solicitada a permissão dos usuários para executá-los.
 
       Se esta configuração não for definida, a permissão dos usuários para executar plug-ins desatualizados será solicitada.</translation>
+<translation id="7863947545897944083">Ativar o recurso de acessibilidade de alto contraste na tela de login.
+
+          Se esta política for definida como verdadeira, o alto contraste sempre ficará ativado na tela de login.
+
+          Se esta política for definida como falsa, o alto contraste sempre ficará desativado na tela de login.
+
+          Se você definir esta política, os usuários não poderão alterá-la ou substituí-la.
+
+          Se esta política não for definida, o alto contraste ficará inicialmente desativado na tela de login, mas poderá ser ativado pelo usuário a qualquer momento.</translation>
 <translation id="787125417158068494">Se ela for definida para SyncDisabled ou não for configurada, os certificados do <ph name="PRODUCT_OS_NAME" /> não ficarão disponíveis para apps ARC.
 
       Se ela for definida para CopyCaCerts, todos os certificados CA instalados por ONC com <ph name="WEB_TRUSTED_BIT" /> ficarão disponíveis para apps ARC.</translation>
@@ -4309,7 +4372,6 @@
 <translation id="8798099450830957504">Padrão</translation>
 <translation id="8800453707696044281">Configurar a parada personalizada do carregamento da bateria, em porcentagem</translation>
 <translation id="8801680448782904838">Notifica um usuário de que a reinicialização do navegador ou do dispositivo é recomendada ou obrigatória</translation>
-<translation id="8802816494059596691">Os nomes de host especificados nesta lista estarão isentos da verificação de política HSTS que poderia fazer upgrade de solicitações de http para https. Apenas nomes de host de etiqueta única são permitidos nesta política. Nomes de host precisam ser canonizados: todo IDN precisa ser convertido para o formato de etiqueta A, e todas as letras ASCII precisam estar em caixa-baixa. Esta política se aplica apenas aos nomes de host especificados. Ela não se aplica a subdomínios dos nomes especificados.</translation>
 <translation id="8818173863808665831">Informar a localização geográfica do dispositivo. 
 
       Se a política não for configurada, ou for configurada como falsa, o local não será informado.</translation>
diff --git a/components/policy/resources/policy_templates_ru.xtb b/components/policy/resources/policy_templates_ru.xtb
index 793ad9b..e85637d 100644
--- a/components/policy/resources/policy_templates_ru.xtb
+++ b/components/policy/resources/policy_templates_ru.xtb
@@ -3157,7 +3157,7 @@
 <translation id="6689792153960219308">Отчет о статусе оборудования</translation>
 <translation id="6698632841807204978">Включить черно-белую печать</translation>
 <translation id="6699880231565102694">Включение двухфакторной аутентификации для хостов удаленного доступа</translation>
-<translation id="670597451099978576">Автоматически разрешать этим сайтам подключение к USB-устройствам с предоставленными идентификаторами поставщика и продукта на экране входа.</translation>
+<translation id="670597451099978576">Автоматически разрешать этим сайтам подключение к USB-устройствам с указанными идентификаторами поставщика и продукта на экране входа.</translation>
 <translation id="6720080634516505446"><ph name="PRODUCT_NAME" /> обеспечивает безопасную установку и обновление расширений. Однако контент некоторых расширений, размещенный за пределами Интернет-магазина Chrome, может быть защищен только ненадежными алгоритмами подписи и хеширования, например SHA-1. Если это правило отключено, Chrome запрещает установку и обновление таких расширений (пока разработчики не начнут использовать более надежные алгоритмы). Если это правило включено, такие расширения можно устанавливать и обновлять.
 
           По умолчанию правило включено, даже если не настроено.
@@ -4262,9 +4262,9 @@
 https://support.google.com/a/answer/1668854.
 
 Пользователи не могут изменить или переопределить эту настройку.</translation>
-<translation id="8625234016727663537">Позволяет задать список URL для сайтов, которым на экране входа автоматически будет разрешен доступ к USB-устройству с предоставленными идентификаторами поставщика и продукта. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика и идентификатор продукта. Вместо пропущенного идентификатора используется подстановочный знак с одним исключением – идентификатор товара не может быть указан без идентификатора поставщика. В противном случае правило недействительно и игнорируется.
+<translation id="8625234016727663537">Позволяет задать список URL для сайтов, которым на экране входа автоматически будет разрешен доступ к USB-устройству с предоставленными идентификаторами поставщика и продукта. Каждый пункт списка должен включать устройства и URL. Для каждого устройства можно задать идентификатор поставщика и идентификатор продукта. Пропущенный идентификатор считается подстановочным знаком с одним исключением – идентификатор продукта не может быть указан без идентификатора поставщика. В противном случае правило недействительно и игнорируется.
 
-        В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ (запрашивающий URL), и URL сайта из фрейма верхнего уровня (встраиваемый URL). Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут отличаться. Поэтому поле URL может содержать два адреса, указанные через запятую. Когда задан только один URL, доступ к USB-устройствам будет предоставлен, если этот URL совпадает с запрашивающим URL, независимо от способа встраивания. В поле URL необходимо указывать действительные адреса, иначе правило будет игнорироваться.
+        В модели разрешения доступа к USB-устройству используется URL сайта, запрашивающего доступ (запрашивающий URL), и URL сайта из фрейма верхнего уровня (встраиваемый URL). Если сайт, запрашивающий доступ, загружается в окне iframe, эти два URL могут отличаться. Поэтому поле URL может содержать два адреса, указанные через запятую. Когда задан только один URL, доступ к USB-устройствам будет предоставлен, если этот URL совпадает с URL запрашивающего сайта, независимо от способа встраивания. В поле URL необходимо указывать действительные адреса, иначе правило будет игнорироваться.
 
         Если это правило не настроено, для всех сайтов используется глобальное значение по умолчанию (автоматический доступ запрещен).</translation>
 <translation id="8631434304112909927">до версии <ph name="UNTIL_VERSION" /></translation>
@@ -4331,7 +4331,6 @@
 <translation id="8798099450830957504">По умолчанию</translation>
 <translation id="8800453707696044281">Установить уровень заряда в процентах, при котором будет прекращаться зарядка</translation>
 <translation id="8801680448782904838">Уведомлять пользователя о том, что рекомендуется или требуется перезапустить браузер или устройство</translation>
-<translation id="8802816494059596691">Для имен хостов, указанных в списке этого правила, не будет проверяться использование механизма HSTS (он позволяет изменить протокол, по которому осуществляются запросы, с HTTP на HTTPS). В списке правила могут быть только одноуровневые имена. Имена хостов необходимо нормализовать: доменные имена, содержащие символы национальных алфавитов, должны быть преобразованы в формат A-Label, а буквы из таблицы ASCII должны быть строчными. Это правило действует только для определенных имен хостов, указанных в списке. На субдомены оно не распространяется.</translation>
 <translation id="8818173863808665831">Отправка сведений о географическом местоположении устройства.
 
       Если это правило не настроено или настроено неверно, данные о местоположении не отправляются.</translation>
diff --git a/components/policy/resources/policy_templates_th.xtb b/components/policy/resources/policy_templates_th.xtb
index a8f276c..65421d67 100644
--- a/components/policy/resources/policy_templates_th.xtb
+++ b/components/policy/resources/policy_templates_th.xtb
@@ -4255,9 +4255,9 @@
       https://support.google.com/a/answer/1668854
 
       ผู้ใช้จะเปลี่ยนหรือลบล้างการตั้งค่านี้ไม่ได้</translation>
-<translation id="8625234016727663537">อนุญาตให้คุณตั้งค่ารายการ URL ซึ่งระบุเว็บไซต์ที่จะได้รับสิทธิ์เข้าถึงอุปกรณ์ USB โดยอัตโนมัติ พร้อมรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนดในหน้าจอการเข้าสู่ระบบ รายการย่อยในรายการจะต้องมีทั้งอุปกรณ์และ URL เพื่อให้นโยบายมีผล แต่ละรายการในอุปกรณ์อาจมีช่องรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ รหัสที่ไม่รวมอยู่ในรายการจะถือว่าเป็นไวลด์การ์ดโดยมีข้อยกเว้นข้อเดียว นั่นคือคุณจะระบุรหัสผลิตภัณฑ์ได้เฉพาะเมื่อระบุรหัสผู้ให้บริการด้วยเท่านั้น มิเช่นนั้น ระบบจะถือว่านโยบายไม่มีผลและจะไม่สนใจนโยบาย
+<translation id="8625234016727663537">อนุญาตให้คุณตั้งค่ารายการ URL ซึ่งระบุเว็บไซต์ที่จะได้รับสิทธิ์เข้าถึงอุปกรณ์ USB โดยอัตโนมัติ พร้อมรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ที่กำหนดในหน้าจอการเข้าสู่ระบบ แต่ละรายการย่อยในรายการจะต้องมีทั้งอุปกรณ์และ URL เพื่อให้นโยบายมีผล แต่ละรายการในอุปกรณ์อาจมีช่องรหัสผู้ให้บริการและรหัสผลิตภัณฑ์ รหัสที่ไม่รวมอยู่ในรายการจะถือว่าเป็นไวลด์การ์ดโดยมีข้อยกเว้นข้อเดียว นั่นคือคุณจะระบุรหัสผลิตภัณฑ์ได้เฉพาะเมื่อระบุรหัสผู้ให้บริการด้วยเท่านั้น มิเช่นนั้น ระบบจะถือว่านโยบายไม่มีผลและจะไม่สนใจนโยบายดังกล่าว
 
-        โมเดลสิทธิ์ USB ใช้ URL ของเว็บไซต์ที่ส่งคำขอ ("URL ที่ส่งคำขอ") และ URL ของเว็บไซต์กรอบระดับบนสุด ("URL ที่มีการฝัง") เพื่อให้สิทธิ์ URL ที่ส่งคำขอในการเข้าถึงอุปกรณ์ USB โดย URL ที่ส่งคำขออาจต่างจาก URL ที่มีการฝังเมื่อมีการโหลดเว็บไซต์ที่ส่งคำขอใน iframe ดังนั้นช่อง "urls" อาจมีสตริง URL ได้ถึง 2 สตริงโดยคั่นด้วยเครื่องหมายจุลภาคเพื่อระบุ URL ที่ส่งคำขอและ URL ที่มีการฝังตามลำดับ หากมีการระบุ URL เพียงรายการเดียว ระบบจะให้สิทธิ์เข้าถึงอุปกรณ์ USB ที่เกี่ยวข้องเมื่อ URL ของเว็บไซต์ที่ส่งคำขอตรงกับ URL นี้ไม่ว่าสถานะการฝังจะเป็นอย่างไร URL ในช่อง "urls" ต้องเป็น URL ที่ถูกต้อง มิเช่นนั้น ระบบจะไม่สนใจนโยบาย
+        โมเดลสิทธิ์ USB ใช้ URL ของเว็บไซต์ที่ส่งคำขอ ("URL ที่ส่งคำขอ") และ URL ของเว็บไซต์กรอบระดับบนสุด ("URL ที่มีการฝัง") เพื่อให้สิทธิ์ URL ที่ส่งคำขอในการเข้าถึงอุปกรณ์ USB โดย URL ที่ส่งคำขออาจต่างจาก URL ที่มีการฝังเมื่อมีการโหลดเว็บไซต์ที่ส่งคำขอใน iframe ดังนั้นช่อง "urls" อาจมีสตริง URL ได้ถึง 2 สตริงโดยคั่นด้วยเครื่องหมายจุลภาคเพื่อระบุ URL ที่ส่งคำขอและ URL ที่มีการฝังตามลำดับ หากมีการระบุ URL เพียงรายการเดียว ระบบจะให้สิทธิ์เข้าถึงอุปกรณ์ USB ที่เกี่ยวข้องเมื่อ URL ของเว็บไซต์ที่ส่งคำขอตรงกับ URL นี้ไม่ว่าสถานะการฝังจะเป็นอย่างไร URL ในช่อง "urls" ต้องเป็น URL ที่ถูกต้อง มิเช่นนั้น ระบบจะไม่สนใจนโยบายดังกล่าว
 
         หากไม่ได้ตั้งค่านโยบายนี้ ระบบจะใช้ค่าเริ่มต้นส่วนกลางกับเว็บไซต์ทั้งหมด (ไม่มีการเข้าถึงโดยอัตโนมัติ)</translation>
 <translation id="8631434304112909927">จนถึงรุ่น <ph name="UNTIL_VERSION" /></translation>
@@ -4324,7 +4324,6 @@
 <translation id="8798099450830957504">ค่าเริ่มต้น</translation>
 <translation id="8800453707696044281">ตั้งค่าการหยุดชาร์จแบตเตอรี่ที่กำหนดเองเป็นเปอร์เซ็นต์</translation>
 <translation id="8801680448782904838">แจ้งผู้ใช้ว่าควรหรือจำเป็นต้องเปิดเบราว์เซอร์ขึ้นมาใหม่หรือรีสตาร์ทอุปกรณ์</translation>
-<translation id="8802816494059596691">ชื่อโฮสต์ที่ระบุไว้ในรายการนี้จะได้รับการยกเว้นไม่ต้องรับการตรวจสอบตามนโยบาย HSTS ที่อาจอัปเกรดคำขอจาก HTTP เป็น HTTPS นโยบายนี้อนุญาตเฉพาะชื่อโฮสต์ที่ติดป้ายกำกับเดียวเท่านั้น ชื่อโฮสต์ต้องกำหนดเป็น Canonical ซึ่งหมายความว่าต้องแปลง IDN ทั้งหมดเป็นรูปแบบ A-label และตัวอักษร ASCII ทั้งหมดต้องเป็นตัวพิมพ์เล็ก นโยบายนี้มีผลเฉพาะกับชื่อโฮสต์ที่ระบุไว้บางรายการเท่านั้น ไม่ใช่กับโดเมนย่อยของชื่อที่ระบุ</translation>
 <translation id="8818173863808665831">รายงานตำแหน่งทางภูมิศาสตร์ของอุปกรณ์
 
       หากไม่ได้ตั้งค่านโยบายนี้เอาไว้ หรือตั้งค่าเป็นเท็จ ตำแหน่งจะไม่ถูกรายงาน</translation>
diff --git a/components/policy/resources/policy_templates_tr.xtb b/components/policy/resources/policy_templates_tr.xtb
index 3d68704f..79b8e8da 100644
--- a/components/policy/resources/policy_templates_tr.xtb
+++ b/components/policy/resources/policy_templates_tr.xtb
@@ -3221,7 +3221,7 @@
 <translation id="6689792153960219308">Donanım durumunu bildir</translation>
 <translation id="6698632841807204978">Tek renk yazdırmayı etkinleştir</translation>
 <translation id="6699880231565102694">Uzaktan erişim ana makineleri için iki öğeli kimlik doğrulamayı etkinleştir</translation>
-<translation id="670597451099978576">Bu sitelere, giriş ekranında sağlanan tedarikçi ve ürün kimlikleriyle otomatik olarak USB cihazlarına bağlanma izni verir.</translation>
+<translation id="670597451099978576">Bu sitelere, giriş ekranında sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına otomatik olarak bağlanma izni verir.</translation>
 <translation id="6720080634516505446"><ph name="PRODUCT_NAME" />, uzantıların güvenli bir şekilde güncellenmesini ve yüklenmesini sağlar. Ancak Chrome Web Mağazası'nın dışında barındırılan bazı uzantıların içeriği yalnızca SHA1 gibi güvenli olmayan imzalama veya karma oluşturma algoritmaları ile korunabilir. Bu politika devre dışı bırakılırsa, Chrome bu tür uzantıların sıfırdan yüklenmesine veya güncellenmesine izin vermez (uzantının geliştiricileri uzantıyı daha güçlü algoritmalarla yeniden oluşturana kadar). Bu politika etkinleştirilirse bu tür uzantıların yüklenmesine ve güncellenmesine izin verilir.
 
           Bu politika ayarlanmadan bırakılırsa varsayılan etkin davranış olarak ayarlanır.
@@ -4341,7 +4341,7 @@
       olur. Ayrıntılı bilgi için https://support.google.com/a/answer/1668854 adresine bakabilirsiniz.
 
       Kullanıcılar bu ayarı değiştiremez veya geçersiz kılamaz.</translation>
-<translation id="8625234016727663537">Giriş ekranında sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına erişmesine otomatik olarak izin verilecek siteleri belirten URL listesi ayarlamanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem cihazları hem de URL'leri içermesi gerekir. Cihazlardaki her öğe tedarikçi kimliği ve ürün kimliği alanı içerebilir. Dahil edilmeyen her kimlik bir istisnayla joker olarak değerlendirilir. Bu istisnaya göre tedarikçi kimliği belirtilmeden ürün kimliği de belirtilemez. Aksi halde politika geçerli olmaz ve yok sayılır.
+<translation id="8625234016727663537">Giriş ekranında sağlanan tedarikçi ve ürün kimliklerine sahip USB cihazlarına otomatik olarak erişmesine izin verilecek sitelerin sıralandığı bir URL listesi ayarlamanıza olanak tanır. Politikanın geçerli olabilmesi için listedeki her öğenin hem cihazları hem de URL'leri içermesi gerekir. Cihazlardaki her öğe tedarikçi kimliği ve ürün kimliği alanı içerebilir. Dahil edilmeyen her kimlik, bir istisna dışında (aynı anda tedarikçi kimliği de belirtilmeden bir ürün kimliği belirtilemez) özel bir durum olarak değerlendirilir. Aksi halde politika geçerli olmaz ve yok sayılır.
 
         USB izin modeli, istekte bulunan sitenin URL'sini ("istekte bulunan URL") ve üst düzey çerçeve sitesinin URL'sini ("yerleştirme URL'si") kullanarak istekte bulunan URL'ye USB cihazına erişmesi için izin verir. İstekte bulunan site bir iFrame içinde yüklendiğinde, istekte bulunan URL yerleştirme URL'sinden farklı olabilir. Bu nedenle, "URL'ler" alanı, sırasıyla istekte bulunan URL'yi ve yerleştirme URL'sini belirtmek için virgülle sınırlandırılmış en fazla iki URL dizesi içerebilir. Yalnızca bir URL belirtilirse yerleştirme durumundan bağımsız olarak bu URL ile eşleşen istekte bulunan sitenin URL'sine karşılık gelen USB cihazlarına erişim izni verilir. "URL'ler" alanındaki URL'lerin geçerli URL'ler olmaları gerekir; aksi halde, politika yok sayılır.
 
@@ -4418,7 +4418,6 @@
 <translation id="8798099450830957504">Varsayılan</translation>
 <translation id="8800453707696044281">Pil şarjı için özel şarj durdurma değerini yüzde olarak ayarla</translation>
 <translation id="8801680448782904838">Kullanıcıya tarayıcının veya cihazın yeniden başlatılmasının önerildiğini ya da gerektiğini bildir</translation>
-<translation id="8802816494059596691">Bu listede belirtilen ana makine adları, istekleri http'den https'ye yükseltebilecek HSTS politika kontrolünden muaf tutulur. Bu politikada yalnızca tek etiketli ana makine adlarına izin verilir. Ana makine adları standartlaştırılmalıdır: Tüm IDN'ler A-etiket biçimine dönüştürülmeli ve tüm ASCII harfleri küçük harf olmalıdır. Bu politika yalnızca belirtilen spesifik ana makine adları için geçerlidir; belirtilen adların alt alanları için geçerli değildir</translation>
 <translation id="8818173863808665831">Cihazın coğrafi konumunu bildirin.
 
       Bu politika ayarlanmazsa veya yanlış seçeneğine ayarlanırsa konum bildirilmez.</translation>
diff --git a/components/policy/resources/policy_templates_uk.xtb b/components/policy/resources/policy_templates_uk.xtb
index 919c4d5f..b42c2f77 100644
--- a/components/policy/resources/policy_templates_uk.xtb
+++ b/components/policy/resources/policy_templates_uk.xtb
@@ -2190,7 +2190,7 @@
 <translation id="4832852360828533362">Звіти про користувачів і пристрої</translation>
 <translation id="4834526953114077364">Дані неактивних останнім часом користувачів, які не входили в обліковий запис протягом останніх 3-х місяців, видаляються, доки не буде звільнено достатньо місця</translation>
 <translation id="4835622243021053389">Увімкнути автентифікацію NTLMv2.</translation>
-<translation id="4856471929724652373">Повідомляє інформацію про оновлення, як-от його статус, версію платформи, дані про останню перевірку наявності оновлень і останній перезапуск.
+<translation id="4856471929724652373">Повідомляє інформацію про оновлення ОС, як-от його статус, версію платформи, дані про останню перевірку наявності оновлень і останній перезапуск.
 
       Якщо для цього правила встановлено значення false або його не налаштовано, інформація про оновлення ОС не надсилатиметься. Якщо для цього правила встановлено значення true, інформація про оновлення надсилатиметься.</translation>
 <translation id="4858735034935305895">Дозволити повноекранний режим</translation>
@@ -4360,7 +4360,6 @@
 <translation id="8798099450830957504">За умовчанням</translation>
 <translation id="8800453707696044281">Налаштувати, на якому рівні у відсотках припиняється заряджання акумулятора</translation>
 <translation id="8801680448782904838">Сповіщати користувача про рекомендований чи обов’язковий перезапуск веб-переглядача або пристрою</translation>
-<translation id="8802816494059596691">Імена хостів із цього списку буде виключено з перевірки правил HSTS. Це може змінити запити з http на https. У цьому правилі можна вказувати лише імена хостів з однією міткою. Імена хостів мають бути канонікалізовані: інтернаціоналізовані доменні імена (IDN) потрібно конвертувати у формат A-label, а літери ASCII мають бути малими. Це правило застосовується лише до певних указаних імен хостів. Воно не застосовується до субдоменів указаних імен.</translation>
 <translation id="8818173863808665831">Повідомляє географічне місцезнаходження пристрою.
 
       Якщо це правило не встановлено чи його значення встановлено як "false", місцезнаходження не повідомлятиметься.</translation>
diff --git a/components/policy/resources/policy_templates_vi.xtb b/components/policy/resources/policy_templates_vi.xtb
index 59522fd..5536ae4 100644
--- a/components/policy/resources/policy_templates_vi.xtb
+++ b/components/policy/resources/policy_templates_vi.xtb
@@ -396,7 +396,7 @@
       phù hợp, quyền truy cập sẽ tự động bị từ chối.  Các mẫu ký tự đại diện không được phép.</translation>
 <translation id="1634989431648355062">Cho phép plugin <ph name="FLASH_PLUGIN_NAME" /> trên các trang web này</translation>
 <translation id="1645793986494086629">Lược đồ:</translation>
-<translation id="1648816843164517573">Danh sách các tên sẽ được miễn kiểm tra chính sách Bảo mật truyền tải nghiêm ngặt HTTP (HSTS)</translation>
+<translation id="1648816843164517573">Danh sách các tên sẽ bỏ qua quy trình kiểm tra chính sách Bảo mật truyền tải nghiêm ngặt HTTP (HSTS)</translation>
 <translation id="1653229475925941921">Nếu bạn đặt chính sách này, chính sách sẽ kiểm soát loại kính lúp được bật. Đặt chính sách thành ''None'' sẽ tắt kính lúp.
 
           Nếu bạn đặt chính sách này, người dùng sẽ không thể thay đổi hay ghi đè chính sách.
@@ -990,7 +990,7 @@
           Chính sách này là tùy chọn. Nếu không thiết lập, mặc định được sử dụng sẽ là UTF-8.
 
           Chính sách này chỉ được áp dụng nếu chính sách 'DefaultSearchProviderEnabled' được bật.</translation>
-<translation id="2679827548357140943">Cần phải kiểm tra danh sách miền của nội dung đã tải lên để xem có chứa phần mềm độc hại hay không</translation>
+<translation id="2679827548357140943">Danh sách miền mà cần phải kiểm tra nội dung tải lên để xem có chứa phần mềm độc hại hay không</translation>
 <translation id="268577405881275241">Bật tính năng proxy nén dữ liệu</translation>
 <translation id="2693108589792503178">Định cấu hình URL thay đổi mật khẩu.</translation>
 <translation id="2694143893026486692">Đã bật tùy chọn phóng to ở vị trí cố định</translation>
@@ -1368,9 +1368,9 @@
 <translation id="332771718998993005">Xác định tên được quảng cáo là đích <ph name="PRODUCT_NAME" />.
 
           Nếu bạn đặt chính sách này thành một chuỗi không phải là chuỗi trống, thì chuỗi đó sẽ được sử dụng làm tên của đích <ph name="PRODUCT_NAME" />. Nếu không, tên đích sẽ là tên thiết bị. Nếu bạn không đặt chính sách này, thì tên đích sẽ là tên thiết bị và chủ sở hữu thiết bị (hoặc người dùng từ miền quản lý thiết bị) sẽ được phép thay đổi tên đó. Tên có độ dài tối đa là 24 ký tự.</translation>
-<translation id="3331950121151548952">Cần phải kiểm tra danh sách miền của nội dung đã tải lên để xem có chứa phần mềm độc hại hay không.  Chỉ dùng chính sách này nếu bạn đặt <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" /> thành giá trị cho phép hoặc thực thi quá trình kiểm tra phần mềm độc hại đối với nội dung đã tải lên.
+<translation id="3331950121151548952">Danh sách miền cần phải kiểm tra nội dung đã tải lên để xem có chứa phần mềm độc hại hay không.  Chỉ dùng chính sách này nếu bạn đặt <ph name="SEND_FILES_FOR_MALWARE_CHECK_POLICY_NAME" /> thành giá trị cho phép hoặc thực thi quá trình kiểm tra để phát hiện phần mềm độc hại đối với nội dung đã tải lên.
 
-      Nếu bạn không đặt hoặc đặt chính sách này thành danh sách miền trống, thì sẽ không cần kiểm tra nội dung đã tải lên xem có chứa phần mềm độc hại hay không.
+      Nếu bạn không đặt hoặc đặt chính sách này thành danh sách miền trống, thì sẽ không có nội dung nào được kiểm tra để xem có chứa phần mềm độc hại hay không.
       </translation>
 <translation id="3335468714959531450">Cho phép bạn đặt danh sách các mẫu url chỉ định những trang web được phép đặt cookie.
 
@@ -1445,9 +1445,9 @@
 
           Pin bắt đầu sạc khi lượng pin còn lại thấp hơn giá trị bắt đầu sạc pin tùy chỉnh này.
 
-          <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_START_CHARGING_NAME" /> phải thấp hơn <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_STOP_CHARGING_NAME" /> tối thiểu là 5%.
+          <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_START_CHARGING_NAME" /> phải thấp hơn <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_STOP_CHARGING_NAME" /> tối thiểu là 5 điểm phần trăm.
 
-          Chỉ dùng chính sách này nếu bạn đặt <ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" /> thành <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />.
+          Chính sách này chỉ được sử dụng nếu bạn đặt <ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" /> thành <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />.
 
           Nếu bạn không định cấu hình hoặc không đặt chính sách này, thì chế độ sạc pin <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" /> sẽ được áp dụng.</translation>
 <translation id="348495353354674884">Bật bàn phím ảo</translation>
@@ -1984,7 +1984,7 @@
 
       Nếu bạn đặt chính sách này thành "Gửi tệp người dùng đã tải lên để quét", thì các tệp người dùng đã tải lên sẽ được gửi qua mạng đến tính năng Duyệt web an toàn để quét tìm phần mềm độc hại.
 
-      Nếu bạn đặt chính sách này thành "Gửi tệp người dùng đã tải lên và tải xuống để quét", thì sản phẩm sẽ hoạt động theo các quy tắc nêu trong phần "Gửi tệp người dùng đã tải lên để quét" và "Gửi tệp người dùng đã tải xuống để quét".
+      Nếu bạn đặt chính sách này thành "Gửi tệp người dùng đã tải lên và tải xuống để quét", thì hệ thống sẽ hoạt động theo các quy tắc nêu trong phần "Gửi tệp người dùng đã tải lên để quét" và "Gửi tệp người dùng đã tải xuống để quét".
 
       Vui lòng xem chính sách <ph name="DELAY_DELIVER_UNTIL_VERDICT_POLICY_NAME" /> và <ph name="UNSAFE_EVENTS_REPORTING_ENABLED" /> để biết thông tin chi tiết về cách kết quả quét xuất hiện đối với người dùng và quản trị viên.</translation>
 <translation id="4344356660952451291">Cần phải kiểm tra danh sách miền của nội dung tải xuống xem có tuân thủ hay không</translation>
@@ -3512,9 +3512,9 @@
 
           Pin sẽ ngừng sạc khi đạt đến giá trị ngừng sạc pin tùy chỉnh.
 
-          <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_START_CHARGING_NAME" /> phải thấp hơn <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_STOP_CHARGING_NAME" /> tối thiểu là 5%.
+          <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_START_CHARGING_NAME" /> phải thấp hơn <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_STOP_CHARGING_NAME" /> tối thiểu là 5 điểm phần trăm.
 
-          Chỉ dùng chính sách này nếu bạn đặt <ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" /> thành <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />.
+          Chính sách này chỉ được sử dụng nếu bạn đặt <ph name="DEVICE_BATTERY_CHARGE_MODE_NAME" /> thành <ph name="DEVICE_BATTERY_CHARGE_CUSTOM_MODE_NAME" />.
 
           Nếu bạn không định cấu hình hoặc không đặt chính sách này, thì chế độ sạc pin <ph name="DEVICE_BATTERY_CHARGE_STANDARD_MODE_NAME" /> sẽ được áp dụng.</translation>
 <translation id="7140629953254369759">Hướng dẫn <ph name="PRODUCT_OS_NAME" /> sử dụng cấu hình bộ lập lịch tác vụ dựa trên tên được chỉ định.
@@ -4447,7 +4447,6 @@
 <translation id="8798099450830957504">Mặc định</translation>
 <translation id="8800453707696044281">Đặt mức phần trăm ngừng sạc pin tùy chỉnh</translation>
 <translation id="8801680448782904838">Thông báo cho người dùng biết họ cần hoặc bắt buộc phải chạy lại trình duyệt hoặc khởi động lại thiết bị</translation>
-<translation id="8802816494059596691">Các tên máy chủ đã chỉ định trong danh sách này sẽ được miễn kiểm tra chính sách HSTS (có thể nâng cấp yêu cầu từ http lên https). Chính sách này chỉ cho phép tên máy chủ một nhãn. Cần phải chuẩn hóa tên máy chủ: mọi IDN phải được chuyển sang định dạng nhãn A và tất cả chữ cái ASCII phải là chữ thường. Chính sách này chỉ áp dụng với các tên máy chủ cụ thể đã chỉ định, chứ không áp dụng với các miền con của tên máy chủ đã chỉ định.</translation>
 <translation id="8818173863808665831">Báo cáo vị trí địa lý của thiết bị.
 
       Nếu chính sách này không được đặt hoặc được đặt thành false, vị trí sẽ không được báo cáo.</translation>
diff --git a/components/policy/resources/policy_templates_zh-CN.xtb b/components/policy/resources/policy_templates_zh-CN.xtb
index fc26d06..4ba942fc 100644
--- a/components/policy/resources/policy_templates_zh-CN.xtb
+++ b/components/policy/resources/policy_templates_zh-CN.xtb
@@ -3640,9 +3640,9 @@
 <translation id="7625498350540361483">
       如果此政策设为 true,<ph name="PRODUCT_NAME" /> 便可以从 Google 服务(例如 Google Meet)收集 WebRTC 事件日志,并将这些日志上传到 Google。
 
-      如果此政策设为 false,<ph name="PRODUCT_NAME" /> 将不得收集或上传此类日志。
+      如果此政策设为 false,<ph name="PRODUCT_NAME" /> 将不会收集或上传此类日志。
 
-      如果此政策未设置(在 M76 及较早版本中),<ph name="PRODUCT_NAME" /> 将不得收集或上传此类日志。
+      如果此政策未设置(在 M76 及较早版本中),<ph name="PRODUCT_NAME" /> 将不会收集或上传此类日志。
 
       如果此政策未设置(从 M77 开始),在默认情况下,<ph name="PRODUCT_NAME" /> 可以收集或上传此类日志,但需满足以下条件:浏览器个人资料被视为托管(即,该个人资料能接收云端或计算机级别政策),并且不是孩子个人资料、临时个人资料、登录个人资料和无痕个人资料中的任一种。
 
@@ -4230,7 +4230,6 @@
 <translation id="8798099450830957504">默认</translation>
 <translation id="8800453707696044281">设置电池充电自定义停止充电值(以百分比表示)</translation>
 <translation id="8801680448782904838">系统建议或要求重新启动浏览器或重启设备时,通知用户</translation>
-<translation id="8802816494059596691">此列表中指定的主机名将免受 HSTS 政策检查,该检查可能会将请求从 HTTP 升级到 HTTPS。此政策只允许使用单标签主机名。必须使用规范化主机名:任何 IDN 都必须被转换为对应的 A 标签格式,并且所有 ASCII 字母都必须小写。此政策只适用于指定的特定主机名,不适用于指定名称的子网域。</translation>
 <translation id="8818173863808665831">报告设备的地理位置。
 
       如果未设置此政策或将其设为 false,系统将不会报告相关位置。</translation>
diff --git a/components/policy/resources/policy_templates_zh-TW.xtb b/components/policy/resources/policy_templates_zh-TW.xtb
index 6588531..5e97f27 100644
--- a/components/policy/resources/policy_templates_zh-TW.xtb
+++ b/components/policy/resources/policy_templates_zh-TW.xtb
@@ -222,7 +222,7 @@
 
       如果不設定這項政策,網路程式碼可能會在瀏覽器程序外執行 (取決於 NetworkService 實驗的實測結果)。</translation>
 <translation id="1384459581748403878">參考頁面:<ph name="REFERENCE_URL" /></translation>
-<translation id="138847842893090358">回報 OS 的更新狀態</translation>
+<translation id="138847842893090358">回報作業系統的更新狀態</translation>
 <translation id="1393485621820363363">已啟用企業裝置印表機</translation>
 <translation id="1397855852561539316">預設搜尋引擎建議網址</translation>
 <translation id="1404043648050567997">「安全瀏覽」服務會檢查使用者要瀏覽的網站,如果是已知有惡意攻擊風險的網站,就會顯示警告網頁。如果啟用這項政策,可防止使用者忽略警告而繼續前往惡意網站。
@@ -2150,9 +2150,9 @@
 <translation id="4832852360828533362">使用者與裝置回報功能</translation>
 <translation id="4834526953114077364">移除近期登入次數最少的使用者 (3 個月都未曾登入),直到有足夠的可用空間</translation>
 <translation id="4835622243021053389">啟用 NTLMv2 驗證。</translation>
-<translation id="4856471929724652373">回報 OS 的更新資訊,例如更新狀態、平台版本、上次更新檢查時間以及上次重新啟動時間。
+<translation id="4856471929724652373">回報作業系統的更新資訊,例如更新狀態、平台版本、上次更新檢查時間以及上次重新啟動時間。
 
-      如果將這項政策設為 False 或不予設定,系統將不會回報 OS 的更新資訊。如果設為 True,則系統會回報 OS 的更新資訊。</translation>
+      如果將這項政策設為 False 或不予設定,系統將不會回報作業系統的更新資訊。如果設為 True,則系統會回報作業系統的更新資訊。</translation>
 <translation id="4858735034935305895">允許全螢幕模式</translation>
 <translation id="4861767323695239729">設定可在使用者工作階段中使用的輸入法</translation>
 <translation id="487460824085252184">自動遷移,不要求使用者同意。</translation>
@@ -4273,7 +4273,6 @@
 <translation id="8798099450830957504">預設</translation>
 <translation id="8800453707696044281">自訂電池停止充電值 (以百分比表示)</translation>
 <translation id="8801680448782904838">透過通知建議或要求使用者重新啟動瀏覽器或裝置</translation>
-<translation id="8802816494059596691">這份清單中指定的主機名稱會從 HTTP 嚴格傳輸安全性政策檢查作業中排除,該檢查可能會將要求從 HTTP 升級為 HTTPS。這項政策只允許單一標籤主機名稱。主機名稱必須標準化:任何 IDN 都必須轉換為單一標籤格式,且所有 ASCII 字母都必須使用小寫。這項政策只適用於指定的主機名稱,不適用於指定主機名稱的子網域。</translation>
 <translation id="8818173863808665831">回報裝置的地理位置。
 
       如果未設定這項政策,或將其設定為 False,系統將不會回報位置。</translation>
diff --git a/components/search_engines/prepopulated_engines.json b/components/search_engines/prepopulated_engines.json
index b0474152..b134602 100644
--- a/components/search_engines/prepopulated_engines.json
+++ b/components/search_engines/prepopulated_engines.json
@@ -28,7 +28,7 @@
     // Increment this if you change the data in ways that mean users with
     // existing data should get a new version. Otherwise, existing data may
     // continue to be used and updates made here will not always appear.
-    "kCurrentDataVersion": 116
+    "kCurrentDataVersion": 117
   },
 
   // The following engines are included in country lists and are added to the
@@ -130,7 +130,7 @@
       "alternate_urls": [
         "https://go.mail.ru/msearch?q={searchTerms}&{mailru:referralID}"
       ],
-      "encoding": "windows-1251",
+      "new_tab_url": "https://go.mail.ru/chrome/newtab/",
       "suggest_url": "https://suggests.go.mail.ru/chrome?q={searchTerms}",
       "type": "SEARCH_ENGINE_MAILRU",
       "id": 83
diff --git a/components/strings/components_strings_am.xtb b/components/strings/components_strings_am.xtb
index f6a4d7a6..dc7917f 100644
--- a/components/strings/components_strings_am.xtb
+++ b/components/strings/components_strings_am.xtb
@@ -1027,6 +1027,7 @@
 <translation id="6058977677006700226">በሁሉም የእርስዎ መሣሪያዎች ላይ የእርስዎ ኮርዶች ጥቅም ላይ ይዋሉ?</translation>
 <translation id="6059925163896151826">የዩኤስቢ መሣሪያዎች</translation>
 <translation id="6060009363608157444">ልክ ያልሆነ የDnsOverHttps ሁነታ።</translation>
+<translation id="6064217302520318294">ማያ ገጽ መቆለፊያ</translation>
 <translation id="6080696365213338172">በአስተዳዳሪ የቀረበ የእውቅና ማረጋገጫ በመጠቀም ይዘት ደርሰዋል። ለ<ph name="DOMAIN" /> የሚያቀርቡት ውሂብ በአስተዳዳሪዎ ሊያዝ ይችላል።</translation>
 <translation id="6094273045989040137">አብራራ</translation>
 <translation id="610911394827799129">የእርስዎ Google መለያ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> ላይ ሌሎች የአሰሳ ታሪክ ዓይነቶች ሊኖረው ይችላል።</translation>
diff --git a/components/strings/components_strings_ar.xtb b/components/strings/components_strings_ar.xtb
index f4fa2f8..a620a19 100644
--- a/components/strings/components_strings_ar.xtb
+++ b/components/strings/components_strings_ar.xtb
@@ -1034,6 +1034,7 @@
 <translation id="6058977677006700226">هل تستخدم بطاقاتك على جميع أجهزتك؟</translation>
 <translation id="6059925163896151826">‏أجهزة USB</translation>
 <translation id="6060009363608157444">‏وضع DnsOverHttps غير صحيح.</translation>
+<translation id="6064217302520318294">قفل الشاشة</translation>
 <translation id="6080696365213338172">لقد دخلت إلى المحتوى باستخدام شهادة وفرها المشرف. ويمكن أن يعترض المشرف طريق البيانات التي تقدمها إلى <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">إضافة تعليق توضيحي</translation>
 <translation id="610911394827799129">‏قد يتضمّن حسابك على Google نماذج أخرى من سجلّ التصفّح على <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_bg.xtb b/components/strings/components_strings_bg.xtb
index 64b0c0f..9b6952c 100644
--- a/components/strings/components_strings_bg.xtb
+++ b/components/strings/components_strings_bg.xtb
@@ -1032,6 +1032,7 @@
 <translation id="6058977677006700226">Искате ли да използвате картите си на всичките си устройства?</translation>
 <translation id="6059925163896151826">USB устройства</translation>
 <translation id="6060009363608157444">Невалиден режим за DnsOverHttps.</translation>
+<translation id="6064217302520318294">Заключване на екрана</translation>
 <translation id="6080696365213338172">Осъществихте достъп до съдържанието посредством осигурен от администратора сертификат. Данните, които предоставите на <ph name="DOMAIN" />, могат да бъдат прихванати от администратора ви.</translation>
 <translation id="6094273045989040137">Добавяне на пояснения</translation>
 <translation id="610911394827799129">В профила ви в Google може да има други видове история на сърфиране, съхранявани на адрес <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_bn.xtb b/components/strings/components_strings_bn.xtb
index f320ac1e..85f2a1b1 100644
--- a/components/strings/components_strings_bn.xtb
+++ b/components/strings/components_strings_bn.xtb
@@ -1036,6 +1036,7 @@
 <translation id="6058977677006700226">আপনার সমস্ত ডিভাইসে কার্ডগুলি ব্যবহার করবেন?</translation>
 <translation id="6059925163896151826">USB ডিভাইসগুলি</translation>
 <translation id="6060009363608157444">ভুল DnsOverHttps মোড।</translation>
+<translation id="6064217302520318294">স্ক্রিন লক</translation>
 <translation id="6080696365213338172">অ্যাডমিনিস্ট্রেটরের দ্বারা সরবরাহ করা সার্টিফিকেট ব্যবহার করে আপনি কন্টেন্ট ব্যবহার করেছেন৷ <ph name="DOMAIN" />-কে আপনি যে ডেটা সরবরাহ করেন তাতে আপনার অ্যাডমিনিস্ট্রেটর বাধা দিতে পারে৷</translation>
 <translation id="6094273045989040137">ব্যাখ্যা করুন</translation>
 <translation id="610911394827799129"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />-এ আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিংয়ের ইতিহাস থাকতে পারে</translation>
diff --git a/components/strings/components_strings_ca.xtb b/components/strings/components_strings_ca.xtb
index b3f596bf..cbad38d 100644
--- a/components/strings/components_strings_ca.xtb
+++ b/components/strings/components_strings_ca.xtb
@@ -1018,6 +1018,7 @@
 <translation id="6058977677006700226">Vols utilitzar les targetes en tots els dispositius?</translation>
 <translation id="6059925163896151826">Dispositius USB</translation>
 <translation id="6060009363608157444">El mode DnsOverHttps no és vàlid.</translation>
+<translation id="6064217302520318294">Bloqueig de pantalla</translation>
 <translation id="6080696365213338172">Has accedit a contingut mitjançant un certificat proporcionat per l'administrador. Per tant, l'administrador por interceptar les dades que proporcioneu a <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Anota</translation>
 <translation id="610911394827799129">A <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> trobaràs altres maneres d'explorar l'historial de navegació del teu Compte de Google</translation>
diff --git a/components/strings/components_strings_cs.xtb b/components/strings/components_strings_cs.xtb
index d1a1426..590bf29 100644
--- a/components/strings/components_strings_cs.xtb
+++ b/components/strings/components_strings_cs.xtb
@@ -1014,6 +1014,7 @@
 <translation id="6058977677006700226">Chcete své karty používat na všech svých zařízeních?</translation>
 <translation id="6059925163896151826">Zařízení USB</translation>
 <translation id="6060009363608157444">Režim DnsOverHttps je neplatný.</translation>
+<translation id="6064217302520318294">Zámek obrazovky</translation>
 <translation id="6080696365213338172">Získali jste přístup k obsahu pomocí certifikátu poskytnutého správcem. Údaje poskytovaná doméně <ph name="DOMAIN" /> bude správce moci zachytit.</translation>
 <translation id="6094273045989040137">Přidat značky a poznámky</translation>
 <translation id="610911394827799129">Na stránce <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google.</translation>
diff --git a/components/strings/components_strings_da.xtb b/components/strings/components_strings_da.xtb
index 75101e4..8be6fc8 100644
--- a/components/strings/components_strings_da.xtb
+++ b/components/strings/components_strings_da.xtb
@@ -275,7 +275,7 @@
 <translation id="2270484714375784793">Telefonnummer</translation>
 <translation id="2277103315734023688">Spol frem</translation>
 <translation id="2283340219607151381">Gem og udfyld adresser</translation>
-<translation id="2289385804009217824">Renskær</translation>
+<translation id="2289385804009217824">Beskær</translation>
 <translation id="2292556288342944218">Din internetadgang er blokeret</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
@@ -410,7 +410,7 @@
 <translation id="2925673989565098301">Leveringsmetode</translation>
 <translation id="2928905813689894207">Faktureringsadresse</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> anden}one{<ph name="SHIPPING_ADDRESS_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> anden}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> og <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> andre}}</translation>
-<translation id="2930577230479659665">Renskær efter hver kopi</translation>
+<translation id="2930577230479659665">Beskær efter hver kopi</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">Denne server kunne ikke bevise, at den er <ph name="DOMAIN" />, da sikkerhedscertifikatet er fra <ph name="DOMAIN2" />. Dette kan skyldes en fejlkonfiguration, eller at en hacker har opfanget din forbindelse.</translation>
 <translation id="2948083400971632585">Du kan deaktivere alle proxyer, der er konfigureret for en forbindelse, fra siden Indstillinger.</translation>
@@ -881,7 +881,7 @@
 <translation id="5300589172476337783">Vis</translation>
 <translation id="5308380583665731573">Få forbindelse</translation>
 <translation id="5308689395849655368">Rapportering af nedbrud er deaktiveret.</translation>
-<translation id="5314967030527622926">Værktøj til at lave en brochure</translation>
+<translation id="5314967030527622926">Brochureværktøj</translation>
 <translation id="5317780077021120954">Gem</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> af <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">Vælg kontaktoplysninger</translation>
@@ -1011,7 +1011,7 @@
 <translation id="598637245381783098">Betalingsappen kan ikke åbnes</translation>
 <translation id="5989320800837274978">Der er hverken angivet faste proxyservere eller en .pac-scriptwebadresse.</translation>
 <translation id="5990559369517809815">Anmodninger til serveren er blokeret af en udvidelse.</translation>
-<translation id="5992691462791905444">Engineering Z-fals</translation>
+<translation id="5992691462791905444">Z-fals med kant foroven</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> resultater for "<ph name="SEARCH_TEXT" />"</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">År</translation>
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Vil du bruge kortene på alle dine enheder?</translation>
 <translation id="6059925163896151826">USB-enheder</translation>
 <translation id="6060009363608157444">Ugyldig DnsOverHttps-tilstand.</translation>
+<translation id="6064217302520318294">Skærmlås</translation>
 <translation id="6080696365213338172">Du har opnår adgang til indhold vha. et administratorcertifikat. De data, du angiver til <ph name="DOMAIN" />, kan indhentes af din administrator.</translation>
 <translation id="6094273045989040137">Annoter</translation>
 <translation id="610911394827799129">Din Google-konto kan have andre former for browserhistorik på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
@@ -1052,7 +1053,7 @@
 <translation id="6218753634732582820">Vil du fjerne adressen fra Chromium?</translation>
 <translation id="622039917539443112">Parallelfals</translation>
 <translation id="6221345481584921695">Google Beskyttet browsing <ph name="BEGIN_LINK" />registrerede malware<ph name="END_LINK" /> på <ph name="SITE" /> for nylig. Websites, der normalt er sikre, inficeres undertiden med malware. Det skadelige indhold kommer fra <ph name="SUBRESOURCE_HOST" />, som er en kendt malwaredistributør.</translation>
-<translation id="6234122620015464377">Renskær efter hvert dokument</translation>
+<translation id="6234122620015464377">Beskær efter hvert dokument</translation>
 <translation id="6240447795304464094">Google Pay-logo</translation>
 <translation id="6251924700383757765">Privatlivspolitik</translation>
 <translation id="6254436959401408446">Der er ikke nok hukommelse til at åbne denne side</translation>
@@ -1402,7 +1403,7 @@
 <translation id="8009225694047762179">Administrer adgangskoder</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{Kortet og faktureringsadressen gemmes. Du kan bruge dem, når du er logget ind på <ph name="USER_EMAIL" />.}one{Kortet og faktureringsadressen gemmes. Du kan bruge dem, når du er logget ind på <ph name="USER_EMAIL" />.}other{Kortene og faktureringsadresserne gemmes. Du kan bruge dem, når du er logget ind på <ph name="USER_EMAIL" />.}}</translation>
 <translation id="8025119109950072390">Hackere på dette website kan narre dig til at gøre noget farligt, såsom at installere software eller afsløre dine personlige oplysninger (f.eks. adgangskoder, telefonnumre eller kreditkort).</translation>
-<translation id="8028960012888758725">Renskær efter tryk</translation>
+<translation id="8028960012888758725">Beskær efter tryk</translation>
 <translation id="8034522405403831421">Denne side er på <ph name="SOURCE_LANGUAGE" />. Vil du oversætte den til <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="8035152190676905274">Pen</translation>
 <translation id="8037117624646282037">Hvem der senest har brugt enheden</translation>
@@ -1544,7 +1545,7 @@
 <translation id="8792621596287649091">Du kan miste adgangen til din <ph name="ORG_NAME" />-konto eller udsættes for identitetstyveri. Chromium anbefaler, at du skifter din adgangskode nu.</translation>
 <translation id="8800988563907321413">Her vises de forslag, der er tæt på dig</translation>
 <translation id="8805819170075074995">Listepost "<ph name="LANGUAGE_ID" />": Posten blev ignoreret, fordi den også er inkluderet i politikken SpellcheckLanguage.</translation>
-<translation id="8807160976559152894">Renskær efter hver side</translation>
+<translation id="8807160976559152894">Beskær efter hver side</translation>
 <translation id="8820817407110198400">Bogmærker</translation>
 <translation id="883848425547221593">Andre bogmærker</translation>
 <translation id="884264119367021077">Leveringsadresse</translation>
diff --git a/components/strings/components_strings_de.xtb b/components/strings/components_strings_de.xtb
index 562fdef0..9fc19876 100644
--- a/components/strings/components_strings_de.xtb
+++ b/components/strings/components_strings_de.xtb
@@ -267,7 +267,7 @@
 <translation id="2230458221926704099">Beheben Sie den Verbindungsfehler mithilfe der <ph name="BEGIN_LINK" />Diagnose-App<ph name="END_LINK" /></translation>
 <translation id="2239100178324503013">Jetzt senden</translation>
 <translation id="2248949050832152960">WebAuthn verwenden</translation>
-<translation id="2250931979407627383">Fadenheftung links</translation>
+<translation id="2250931979407627383">Mehrere Heftklammern links</translation>
 <translation id="225207911366869382">Dieser Wert für die Richtlinie ist veraltet.</translation>
 <translation id="2257315177824333709">Ihre Karte kann momentan nicht gespeichert werden</translation>
 <translation id="2262243747453050782">HTTP-Fehler</translation>
@@ -344,7 +344,7 @@
 <translation id="2625385379895617796">Ihre Uhr geht vor</translation>
 <translation id="2634124572758952069">Die Server-IP-Adresse von <ph name="HOST_NAME" /> wurde nicht gefunden.</translation>
 <translation id="2638745661847473633">Der Server <ph name="ORIGIN" />, zu dem Sie gehen, verlangt, dass auf alle an ihn gerichteten Anfragen eine Ursprungsrichtlinie angewendet wird. Aber er hat
-    keine gültige Richtlinie bereitgestellt, was den Browser daran hindert, Ihre
+    eine ungültige Richtlinie bereitgestellt, was den Browser daran hindert, Ihre
     Anfrage für <ph name="SITE" /> auszuführen. Ursprungsrichtlinien können von
     Websitebetreibern verwendet werden, um die Sicherheit und andere Eigenschaften einer Website zu konfigurieren.</translation>
 <translation id="2639739919103226564">Status: </translation>
@@ -394,7 +394,7 @@
 <translation id="2878197950673342043">Posterfaltung</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">Karte speichern?</translation>
-<translation id="2882949212241984732">Doppelseitige Fensterfaltung</translation>
+<translation id="2882949212241984732">Doppelte Fensterfaltung</translation>
 <translation id="2903493209154104877">Adressen</translation>
 <translation id="290376772003165898">Diese Seite ist nicht auf <ph name="LANGUAGE" />?</translation>
 <translation id="2909946352844186028">Eine Netzwerkänderung ist aufgetreten.</translation>
@@ -886,7 +886,7 @@
 <translation id="5384855140246857529">Wenn Sie Ihre Karten auf allen Geräten verwenden möchten, melden Sie sich an und aktivieren Sie die Synchronisierung.</translation>
 <translation id="5386426401304769735">Die Zertifikatskette für diese Website enthält ein Zertifikat mit SHA-1-Signatur.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
-<translation id="5396631636586785122">Fadenheftung rechts</translation>
+<translation id="5396631636586785122">Mehrere Heftklammern rechts</translation>
 <translation id="540969355065856584">Dieser Server konnte nicht beweisen, dass er <ph name="DOMAIN" /> ist. Sein Sicherheitszertifikat ist zurzeit ungültig. Mögliche Gründe sind eine fehlerhafte Konfiguration oder ein Angreifer, der Ihre Verbindung abfängt.</translation>
 <translation id="5421136146218899937">Browserdaten löschen...</translation>
 <translation id="5430298929874300616">Lesezeichen löschen</translation>
@@ -911,7 +911,7 @@
 <translation id="5510766032865166053">Eventuell wurde sie verschoben oder gelöscht.</translation>
 <translation id="5523118979700054094">Richtlinienname</translation>
 <translation id="552553974213252141">Wurde der Text korrekt extrahiert?</translation>
-<translation id="55293785478302737">Fadenheftung</translation>
+<translation id="55293785478302737">Mehrere Heftklammern</translation>
 <translation id="553484882784876924">Prc6 (Umschlag)</translation>
 <translation id="5540224163453853">Der gewünschte Artikel wurde nicht gefunden.</translation>
 <translation id="5541546772353173584">E-Mail-Adresse hinzufügen</translation>
@@ -1023,6 +1023,7 @@
 <translation id="6058977677006700226">Karten auf allen Ihren Geräten nutzen?</translation>
 <translation id="6059925163896151826">USB-Geräte</translation>
 <translation id="6060009363608157444">Ungültiger DnsOverHttps-Modus.</translation>
+<translation id="6064217302520318294">Displaysperre</translation>
 <translation id="6080696365213338172">Sie haben über ein vom Administrator bereitgestelltes Zertifikat auf Inhalte zugegriffen. Die Daten, die Sie innerhalb von <ph name="DOMAIN" /> bereitstellen, können von Ihrem Administrator abgefangen werden.</translation>
 <translation id="6094273045989040137">Anmerkung hinzufügen</translation>
 <translation id="610911394827799129">Unter <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> sind möglicherweise weitere Arten von Browserverlaufsdaten für Ihr Google-Konto gespeichert.</translation>
@@ -1090,7 +1091,7 @@
 <translation id="6446608382365791566">Weitere Informationen hinzufügen</translation>
 <translation id="6447842834002726250">Cookies</translation>
 <translation id="6451458296329894277">Erneute Formular-Übermittlung bestätigen</translation>
-<translation id="6457206614190510200">Heftstich</translation>
+<translation id="6457206614190510200">Rückendrahtheftung</translation>
 <translation id="6465306955648956876">Passwörter verwalten…</translation>
 <translation id="647261751007945333">Geräterichtlinien</translation>
 <translation id="6476284679642588870">Zahlungsmethoden verwalten</translation>
@@ -1379,7 +1380,7 @@
 <translation id="7942349550061667556">Rot</translation>
 <translation id="7947285636476623132">Prüfen Sie Ihr Ablaufjahr und versuchen Sie es dann erneut</translation>
 <translation id="7951415247503192394">(32-Bit)</translation>
-<translation id="7953569069500808819">Fadenheftung oben</translation>
+<translation id="7953569069500808819">Mehrere Heftklammern oben</translation>
 <translation id="7956713633345437162">Mobile Lesezeichen</translation>
 <translation id="7961015016161918242">Nie</translation>
 <translation id="7977894662897852582">Edp</translation>
@@ -1444,7 +1445,7 @@
 <translation id="8253091569723639551">Rechnungsadresse ist erforderlich</translation>
 <translation id="825929999321470778">Alle gespeicherten Passwörter anzeigen</translation>
 <translation id="8261506727792406068">Löschen</translation>
-<translation id="8262952874573525464">Fadenheftung unten</translation>
+<translation id="8262952874573525464">Mehrere Heftklammern unten</translation>
 <translation id="8267698848189296333">Als <ph name="USERNAME" /> anmelden</translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">Anmelden</translation>
diff --git a/components/strings/components_strings_el.xtb b/components/strings/components_strings_el.xtb
index cc89020e..fc501301 100644
--- a/components/strings/components_strings_el.xtb
+++ b/components/strings/components_strings_el.xtb
@@ -1036,6 +1036,7 @@
 <translation id="6058977677006700226">Χρήση των καρτών σας σε όλες τις συσκευές σας;</translation>
 <translation id="6059925163896151826">Συσκευές USB</translation>
 <translation id="6060009363608157444">Μη έγκυρη λειτουργία DnsOverHttps.</translation>
+<translation id="6064217302520318294">Κλείδωμα οθόνης</translation>
 <translation id="6080696365213338172">Η πρόσβασή σας στο περιεχόμενο πραγματοποιήθηκε με τη χρήση ενός πιστοποιητικού που παρασχέθηκε από διαχειριστή. Τα δεδομένα που παρέχετε στο <ph name="DOMAIN" /> μπορεί να ελέγχονται από το διαχειριστή σας.</translation>
 <translation id="6094273045989040137">Σχολιασμός</translation>
 <translation id="610911394827799129">Ο Λογαριασμός Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης στη διεύθυνση <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_en-GB.xtb b/components/strings/components_strings_en-GB.xtb
index 6741e4a..0d02475 100644
--- a/components/strings/components_strings_en-GB.xtb
+++ b/components/strings/components_strings_en-GB.xtb
@@ -1021,6 +1021,7 @@
 <translation id="6058977677006700226">Use your cards on all your devices?</translation>
 <translation id="6059925163896151826">USB devices</translation>
 <translation id="6060009363608157444">Invalid DnsOverHttps mode.</translation>
+<translation id="6064217302520318294">Screen lock</translation>
 <translation id="6080696365213338172">You have accessed content using an administrator-provided certificate. Data you provide to <ph name="DOMAIN" /> can be intercepted by your administrator.</translation>
 <translation id="6094273045989040137">Annotate</translation>
 <translation id="610911394827799129">Your Google Account may have other forms of browsing history at <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_es-419.xtb b/components/strings/components_strings_es-419.xtb
index 74408dd..4d42df5 100644
--- a/components/strings/components_strings_es-419.xtb
+++ b/components/strings/components_strings_es-419.xtb
@@ -1033,6 +1033,7 @@
 <translation id="6058977677006700226">¿Quieres usar tus tarjetas en todos los dispositivos?</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6060009363608157444">Modo DnsOverHttps no válido</translation>
+<translation id="6064217302520318294">Bloqueo de pantalla</translation>
 <translation id="6080696365213338172">Accediste al contenido mediante un certificado proporcionado por el administrador. Los datos que proporciones a <ph name="DOMAIN" /> pueden ser interceptados por tu administrador.</translation>
 <translation id="6094273045989040137">Agregar anotación</translation>
 <translation id="610911394827799129">Es posible que tu cuenta de Google tenga otros formularios del historial de navegación en <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
@@ -1067,7 +1068,7 @@
 <translation id="6302269476990306341">Se está deteniendo el Asistente de Google en Chrome</translation>
 <translation id="6305205051461490394">No se puede acceder a <ph name="URL" />.</translation>
 <translation id="6321917430147971392">Revisa la configuración de DNS.</translation>
-<translation id="6322182122604171028">No se puedo usar Windows Hello</translation>
+<translation id="6322182122604171028">No se pudo usar Windows Hello</translation>
 <translation id="6328639280570009161">Intenta inhabilitar la predicción de red.</translation>
 <translation id="6328784461820205019">"La conexión no es privada", "&lt;span class="error-code"&gt;NET::ERR_CERT_AUTHORITY_INVALID&lt;/span&gt;", "&lt;span class="error-code"&gt;ERR_CERT_COMMON_NAME_INVALID&lt;/span&gt;", "&lt;span class="error-code"&gt;NET::ERR_CERT_WEAK_SIGNATURE_ALGORITHM&lt;/span&gt;", "&lt;span class="error-code"&gt;ERR_CERT_SYMANTEC_LEGACY&lt;/span&gt;" o "Error del certificado SSL"</translation>
 <translation id="6328786501058569169">Este sitio es engañoso</translation>
diff --git a/components/strings/components_strings_es.xtb b/components/strings/components_strings_es.xtb
index e4dbb2e..108b289 100644
--- a/components/strings/components_strings_es.xtb
+++ b/components/strings/components_strings_es.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">¿Quieres usar las tarjetas en todos tus dispositivos?</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6060009363608157444">Modo DnsOverHttps no válido.</translation>
+<translation id="6064217302520318294">Bloqueo de pantalla</translation>
 <translation id="6080696365213338172">Has accedido al contenido mediante un certificado proporcionado por el administrador. Los datos que proporciones a <ph name="DOMAIN" /> pueden ser interceptados por tu administrador.</translation>
 <translation id="6094273045989040137">Anotar</translation>
 <translation id="610911394827799129">Es posible que tu cuenta de Google tenga otros tipos de historial de navegación en la página <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_et.xtb b/components/strings/components_strings_et.xtb
index 8f01bf74..adbc865 100644
--- a/components/strings/components_strings_et.xtb
+++ b/components/strings/components_strings_et.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Kas soovite kaarte kasutada kõigis oma seadmetes?</translation>
 <translation id="6059925163896151826">USB-seadmed</translation>
 <translation id="6060009363608157444">Kehtetu DnsOverHttps-režiim.</translation>
+<translation id="6064217302520318294">Ekraanilukk</translation>
 <translation id="6080696365213338172">Olete sisule juurde pääsenud administraatori antud sertifikaadiga. Administraator saab domeenile <ph name="DOMAIN" /> edastatavaid andmeid kinni pidada.</translation>
 <translation id="6094273045989040137">Lisa märkus</translation>
 <translation id="610911394827799129">Aadressil <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> võib teie Google'i kontol olla muus vormis sirvimisajalugu</translation>
diff --git a/components/strings/components_strings_fa.xtb b/components/strings/components_strings_fa.xtb
index 24aa976..7c2bb6d2 100644
--- a/components/strings/components_strings_fa.xtb
+++ b/components/strings/components_strings_fa.xtb
@@ -345,8 +345,8 @@
 <translation id="2634124572758952069">‏نشانی IP سرور <ph name="HOST_NAME" /> پیدا نشد.</translation>
 <translation id="2638745661847473633">سروری که به آن می‌روید، <ph name="ORIGIN" />، درخواست کرده است
     برای همه درخواست‌هایش خط‌مشی اصلی اعمال شود. اما اکنون خط‌مشی
-    نامعتبری را ارسال کرده است، به معنای اینکه
-مرورگر درخواستتان را
+    نامعتبری را ارسال کرده است، که به این معناست که
+مرورگر نمی‌تواند درخواستتان را
     برای <ph name="SITE" /> برآورده کند. اپراتورهای سایت می‌توانند از
     خط‌مشی‌های اصلی برای پیکربندی امنیت و ویژگی‌های دیگر سایت استفاده کنند.</translation>
 <translation id="2639739919103226564">وضعیت:</translation>
@@ -607,7 +607,7 @@
 <translation id="3963837677003247395">به‌صورت دستی ادامه می‌دهید؟</translation>
 <translation id="3964661563329879394">{COUNT,plural, =0{هیچ‌کدام}=1{از ۱ سایت }one{از # سایت }other{از # سایت }}</translation>
 <translation id="397105322502079400">در حال محاسبه…</translation>
-<translation id="3973234410852337861"><ph name="HOST_NAME" /> مسدود است</translation>
+<translation id="3973234410852337861"><ph name="HOST_NAME" /> مسدود شده است</translation>
 <translation id="3981540111851280311">‏<ph name="ENROLLMENT_DOMAIN" /> «محافظت از خطرات تهدیدکننده Chrome Enterprise» را در مرورگرتان فعال کرده است. «محافظت از خطرات تهدیدکننده Chrome Enterprise» به برخی داده‌هایتان دسترسی دارد.</translation>
 <translation id="3987940399970879459">کمتر از ۱ مگابایت</translation>
 <translation id="3990250421422698716">‏آفست Z شکل</translation>
@@ -1010,7 +1010,7 @@
 <translation id="598637245381783098">برنامه پرداخت باز نشد</translation>
 <translation id="5989320800837274978">‏سرور پروکسی ثابت و URL اسکریپت pac. تعیین نشده‌اند.</translation>
 <translation id="5990559369517809815">درخواست‌های ارسالی به سرور توسط یک برنامهٔ افزودنی مسدود شد.</translation>
-<translation id="5992691462791905444">سه‌لت مهندسی</translation>
+<translation id="5992691462791905444">‏تاخوردگی Z شکل مهندسی</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> نتیجه برای «<ph name="SEARCH_TEXT" />»</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">سال</translation>
@@ -1034,6 +1034,7 @@
 <translation id="6058977677006700226">از کارت‌ها در همه دستگاه‌هایتان استفاده شود؟</translation>
 <translation id="6059925163896151826">‏دستگاه‌های USB</translation>
 <translation id="6060009363608157444">‏حالت DnsOverHttps نامعتبر است.</translation>
+<translation id="6064217302520318294">قفل صفحه</translation>
 <translation id="6080696365213338172">شما با استفاده از گواهی ارائه شده توسط سرپرست سیستم به محتوا دسترسی پیدا کرده‌اید. داده‌هایی که به <ph name="DOMAIN" /> ارائه می‌کنید ممکن است توسط سرپرست سیستم رهگیری شوند.</translation>
 <translation id="6094273045989040137">حاشیه‌نویسی</translation>
 <translation id="610911394827799129">‏ممکن است حساب Google شما اشکال دیگری از سابقه مرور در <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> داشته باشد</translation>
diff --git a/components/strings/components_strings_fi.xtb b/components/strings/components_strings_fi.xtb
index 456048e..4b2498b 100644
--- a/components/strings/components_strings_fi.xtb
+++ b/components/strings/components_strings_fi.xtb
@@ -139,7 +139,7 @@
           &lt;p&gt;Muokkaa aikaa ja päivämäärää &lt;strong&gt;Asetukset&lt;/strong&gt;‑sovelluksen  &lt;strong&gt;Yleistä&lt;/strong&gt;‑osiossa.&lt;/p&gt;</translation>
 <translation id="1569487616857761740">Lisää viimeinen voimassaolopäivä</translation>
 <translation id="1581080074034554886">CVC</translation>
-<translation id="1583429793053364125">Jokin meni vikaan tätä verkkosivua näytettäessä.</translation>
+<translation id="1583429793053364125">Jotain meni pieleen. tätä verkkosivua näytettäessä.</translation>
 <translation id="1588438908519853928">Normaali</translation>
 <translation id="1592005682883173041">Tietojen paikallinen käyttö</translation>
 <translation id="1594030484168838125">Valitse</translation>
@@ -1036,6 +1036,7 @@
 <translation id="6058977677006700226">Haluatko käyttää kortteja kaikilla laitteillasi?</translation>
 <translation id="6059925163896151826">USB-laitteet</translation>
 <translation id="6060009363608157444">Virheellinen DnsOverHttps-tila</translation>
+<translation id="6064217302520318294">Näytön lukitus</translation>
 <translation id="6080696365213338172">Käytät sisältöä järjestelmänvalvojan myöntämällä varmenteella. Järjestelmänvalvoja voi käyttää verkkotunnukselle <ph name="DOMAIN" /> lähettämiäsi tietoja.</translation>
 <translation id="6094273045989040137">Tee merkintä</translation>
 <translation id="610911394827799129">Google-tililläsi voi olla muita selaushistoriatietoja osoitteessa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_fil.xtb b/components/strings/components_strings_fil.xtb
index 7dbf7fa..017a32d5 100644
--- a/components/strings/components_strings_fil.xtb
+++ b/components/strings/components_strings_fil.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">Muling kumonekta sa Wi-Fi</translation>
 <translation id="1165039591588034296">Error</translation>
 <translation id="1175364870820465910">&amp;I-print...</translation>
+<translation id="1175875016430184367">Triple staple right</translation>
 <translation id="1178581264944972037">I-pause</translation>
 <translation id="1181037720776840403">Alisin</translation>
 <translation id="1197088940767939838">Orange</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">Pag-scan ng Malware</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Subukang i-clear ang iyong cookies<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">Mga Hindi na Ginagamit na Feature</translation>
+<translation id="1314509827145471431">Bind right</translation>
 <translation id="1320233736580025032">Prc1 (Envelope)</translation>
 <translation id="132301787627749051">Maghanap ng larawan sa clipboard</translation>
 <translation id="1323433172918577554">Magpakita Nang Higit Pa</translation>
 <translation id="132390688737681464">I-save at Punan ang Mga Address</translation>
+<translation id="1330449323196174374">Left gate fold</translation>
 <translation id="1333989956347591814">Ang iyong aktibidad <ph name="BEGIN_EMPHASIS" />ay maaari pa ring makita<ph name="END_EMPHASIS" /> ng:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />Mga binibisita mong website
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">Tungkol sa Bersyon</translation>
 <translation id="1376836354785490390">Magpakita Nang Mas Kaunti</translation>
 <translation id="1377321085342047638">Numero ng Card</translation>
+<translation id="1380591466760231819">Letter fold</translation>
 <translation id="138218114945450791">Light Blue</translation>
 <translation id="1382194467192730611">USB device na pinapayagan ng iyong administrator</translation>
 <translation id="139305205187523129">Hindi nagpadala ng anumang data ang <ph name="HOST_NAME" />.</translation>
 <translation id="1405567553485452995">Light Green</translation>
 <translation id="1407135791313364759">Buksan lahat</translation>
+<translation id="1408787208417187241">Triple staple top</translation>
 <translation id="1413809658975081374">Error sa privacy</translation>
 <translation id="1426410128494586442">Oo</translation>
 <translation id="1430915738399379752">I-print</translation>
+<translation id="1442386063175183758">Right gate fold</translation>
+<translation id="1442987760062738829">Punch</translation>
 <translation id="1455413310270022028">Pambura</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">Magpakita ng higit pa</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">Mga Tinatanggap na Credit at Debit Card</translation>
 <translation id="194030505837763158">Pumunta sa <ph name="LINK" /></translation>
 <translation id="1945968466830820669">Maaari kang mawalan ng access sa account ng iyong organisasyon o manakawan ng pagkakakilanlan. Inirerekomenda ng Chromium na palitan ang iyong password ngayon.</translation>
+<translation id="1947454675006758438">Staple top right</translation>
 <translation id="1948773908305951926">Mga tinatanggap na prepaid card</translation>
 <translation id="1962204205936693436">Mga Bookmark ng <ph name="DOMAIN" /></translation>
 <translation id="1973335181906896915">Error sa serialization</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">I-clear ang data ng history ng pag-browse sa Chrome</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{at 1 pa}one{at # pa}other{at # pa}}</translation>
 <translation id="2003709556000175978">I-reset na ang iyong password</translation>
+<translation id="2003775180883135320">Quad punch top</translation>
 <translation id="2025186561304664664">Nakatakda sa awtomatikong naka-configure ang proxy.</translation>
 <translation id="202813660234680402">Hindi, huwag idagdag</translation>
 <translation id="2030481566774242610">Ang ibig mo bang sabihin ay <ph name="LINK" />?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">Tunog</translation>
 <translation id="2094505752054353250">Maling pagtutugma sa domain</translation>
 <translation id="2096368010154057602">Kagawaran</translation>
+<translation id="2099652385553570808">Triple staple left</translation>
 <translation id="2102134110707549001">Magmungkahi ng Malakas na Password...</translation>
 <translation id="2108755909498034140">I-restart ang iyong computer</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">Card</translation>
 <translation id="2114841414352855701">Binalewala dahil na-override ito ng <ph name="POLICY_NAME" />.</translation>
 <translation id="2119505898009119320">Ibinigay sa: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">Punch bottom right</translation>
 <translation id="2129079103035905234">Mga Sensor ng Paggalaw</translation>
 <translation id="213826338245044447">Mga Bookmark sa Mobile</translation>
 <translation id="214556005048008348">Kanselahin ang pagbabayad</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">Numero ng Telepono</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 address}one{# address}other{# na address}}</translation>
 <translation id="2187317261103489799">Tukuyin (default)</translation>
+<translation id="2188375229972301266">Multiple punch bottom</translation>
 <translation id="2202020181578195191">Maglagay ng wastong taon ng pag-expire</translation>
 <translation id="2212735316055980242">Hindi nahanap ang patakaran</translation>
 <translation id="2213606439339815911">Kinukuha ang mga entry...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099">Ayusin ang iyong koneksyon gamit ang <ph name="BEGIN_LINK" />diagnostics app<ph name="END_LINK" /></translation>
 <translation id="2239100178324503013">Ipadala ngayon</translation>
 <translation id="2248949050832152960">Gamitin ang WebAuthn</translation>
+<translation id="2250931979407627383">Edge stitch left</translation>
 <translation id="225207911366869382">Hindi na gimagamit ang halagang ito para sa patakarang ito.</translation>
 <translation id="2257315177824333709">Paumanhin, hindi mase-save sa ngayon ang iyong card</translation>
 <translation id="2262243747453050782">Error sa HTTP</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">Numero ng telepono</translation>
 <translation id="2277103315734023688">Mag-seek Pasulong</translation>
 <translation id="2283340219607151381">I-save at punan ang mga address</translation>
+<translation id="2289385804009217824">Paikliin</translation>
 <translation id="2292556288342944218">Naka-block ang iyong access sa Internet</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">Mababago ng iyong administrator ang setup ng browser mo nang malayuan. Puwede ring pamahalaan sa labas ng Chrome ang aktibidad sa device na ito. <ph name="BEGIN_LINK" />Matuto Pa<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; maaaring binawi ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation>
+<translation id="2438874542388153331">Quad punch right</translation>
 <translation id="2463193859425327265">Baguhin ang Home Page</translation>
 <translation id="2463739503403862330">Punan</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">Pumili ng Paraan ng Paghahatid</translation>
+<translation id="2465688316154986572">Staple</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Magpatakbo ng Network Diagnostics<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">I-translate ang pahinang ito</translation>
 <translation id="2479410451996844060">Di-wastong URL ng paghahanap.</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">Protektahan ang Account</translation>
 <translation id="2515335152965840738">BALEWALAIN</translation>
 <translation id="2515629240566999685">Suriin ang signal sa iyong lugar</translation>
+<translation id="2521385132275182522">Staple bottom right</translation>
 <translation id="2523886232349826891">Ise-save sa device lang na ito</translation>
 <translation id="2524461107774643265">Magdagdag ng Higit Pang Impormasyon</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{at 1 pa}one{at # pa}other{at # pa}}</translation>
@@ -326,10 +343,12 @@
 <translation id="2618023639789766142">C10 (Envelope)</translation>
 <translation id="2625385379895617796">Nauuna ang iyong orasan</translation>
 <translation id="2634124572758952069">Hindi makita ang IP address ng server ng <ph name="HOST_NAME" />.</translation>
+<translation id="2638745661847473633">Hiniling ng server na pupuntahan mo, ang <ph name="ORIGIN" />, na ilapat ang isang patakaran ng pinagmulan sa lahat ng kahilingan rito. Pero naghatid na ito ng hindi wastong patakaran, ibig sabihin ay hindi na matutupad ng browser ang iyong kahilingan para sa <ph name="SITE" />. Magagamit ang mga patakaran ng pinagmulan ng mga operator ng site para i-configure ang seguridad at iba pang property para sa isang site.</translation>
 <translation id="2639739919103226564">Katayuan:</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">Tinanggihan ang access sa file</translation>
 <translation id="2653659639078652383">Isumite</translation>
+<translation id="2660650542324841986">Hiniling ng server na pupuntahan mo, ang <ph name="ORIGIN" />, na ilapat ang isang patakaran ng pinagmulan sa lahat ng kahilingan rito. Pero hindi na ito nakapaghatid ng patakaran, na pumipigil sa browser na matupad ang iyong kahilingan para sa <ph name="SITE" />. Magagamit ang mga patakaran ng pinagmulan ng mga operator ng site para i-configure ang seguridad at iba pang property para sa isang site.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{Wala}=1{1 password (para sa <ph name="DOMAIN_LIST" />)}=2{2 password (para sa <ph name="DOMAIN_LIST" />)}one{# password (para sa <ph name="DOMAIN_LIST" />)}other{# na password (para sa <ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">Isara ang iba pang tab o app</translation>
 <translation id="2674170444375937751">Sigurado ka bang nais mong tanggalin ang mga pahinang ito mula sa iyong history?</translation>
@@ -344,6 +363,7 @@
 <translation id="2713444072780614174">Puti</translation>
 <translation id="2720342946869265578">Malapit</translation>
 <translation id="2721148159707890343">Matagumpay ang kahilingan</translation>
+<translation id="272451190272506600">Pindutin ang sensor para magbayad</translation>
 <translation id="2728127805433021124">Nilagdaan ang certificate ng server gamit ang mahinang algorithm ng lagda.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Magpatakbo ng Connectivity Diagnostics<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">Sa pamamagitan ng pag-enable sa mga feature na ito, puwedeng mawala ang data sa iyong browser o
@@ -369,8 +389,10 @@
 <translation id="2847118875340931228">Magbukas ng Incognito Window</translation>
 <translation id="2850739647070081192">Invite (Envelope)</translation>
 <translation id="2856444702002559011">Maaaring sinusubukang nakawin ng mga attacker ang iyong impormasyon mula sa <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (halimbawa, mga password, mensahe, o credit card). <ph name="BEGIN_LEARN_MORE_LINK" />Matuto pa<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">Poster fold</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">I-save ang card?</translation>
+<translation id="2882949212241984732">Double-gate fold</translation>
 <translation id="2903493209154104877">Mga Address</translation>
 <translation id="290376772003165898">Hindi nakasalin ang page sa <ph name="LANGUAGE" />?</translation>
 <translation id="2909946352844186028">May nakitang pagbabago sa network.</translation>
@@ -380,6 +402,7 @@
 <translation id="2925673989565098301">Paraan ng Paghahatid</translation>
 <translation id="2928905813689894207">Billing Address</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> pa}one{<ph name="SHIPPING_ADDRESS_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> pa}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> at <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> pa}}</translation>
+<translation id="2930577230479659665">Paikliin pagkatapos ng bawat pagkopya</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; mula sa <ph name="DOMAIN2" /> ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation>
 <translation id="2948083400971632585">Maaari mong i-disable ang anumang mga proxy na naka-configure para sa isang koneksyon mula sa pahina ng mga setting.</translation>
@@ -393,6 +416,7 @@
 <translation id="2985398929374701810">Maglagay ng wastong address</translation>
 <translation id="2986368408720340940">Hindi available ang pamamaraan ng pag-pick up na ito. Sumubok ng ibang pamamaraan.</translation>
 <translation id="2987034854559945715">Walang tumutugmang feature</translation>
+<translation id="2989742184762224133">Dual staple top</translation>
 <translation id="2991174974383378012">Pagbabahagi sa Mga Website</translation>
 <translation id="2991571918955627853">Hindi mo maaaring bisitahin ang <ph name="SITE" /> sa ngayon dahil gumagamit ng HSTS ang website. Karaniwang pansamantala lang ang mga error at pag-atake sa network, kaya malamang na gagana ang page na ito sa ibang pagkakataon.</translation>
 <translation id="3005723025932146533">Ipakita ang naka-save na kopya</translation>
@@ -411,6 +435,7 @@
 <translation id="3096100844101284527">Magdagdag ng Address sa Pag-pick up</translation>
 <translation id="3105172416063519923">Asset ID:</translation>
 <translation id="3109728660330352905">Wala kang pahintulot na tingnan ang page na ito.</translation>
+<translation id="3116158981186517402">Laminate</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Subukang magpatakbo ng Connectivity Diagnostics<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{Wala}=1{data ng pag-sign in para sa 1 account}one{data ng pag-sign in para sa # account}other{data ng pag-sign in para sa # na account}}</translation>
@@ -426,6 +451,7 @@
       administrator upang matiyak na gumagana ang proxy server. Kung sa palagay mo
       ay hindi ka dapat gumagamit ng proxy server:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">Balanse sa account</translation>
 <translation id="3195213714973468956"><ph name="PRINTER_NAME" /> sa <ph name="SERVER_NAME" /></translation>
 <translation id="320323717674993345">Kanselahin ang Pagbabayad</translation>
 <translation id="3207960819495026254">Naka-bookmark</translation>
@@ -496,6 +522,7 @@
 <translation id="358285529439630156">Tinatanggap ang mga credit at prepaid card.</translation>
 <translation id="3582930987043644930">Magdagdag ng pangalan</translation>
 <translation id="3583757800736429874">&amp;Gawing Muli ang Paglilipat</translation>
+<translation id="3584299510153766161">Dual punch bottom</translation>
 <translation id="3586931643579894722">Magtago ng mga detalye</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -516,6 +543,7 @@
 <translation id="3678529606614285348">Buksan ang page sa bagong Incognito window (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Nakuha ang ulat ng pag-crash noong <ph name="CRASH_TIME" />, na-upload noong <ph name="UPLOAD_TIME" /></translation>
 <translation id="3681007416295224113">Impormasyon sa certificate</translation>
+<translation id="3688109723158850780">Hiniling ng server na pupuntahan mo, ang <ph name="ORIGIN" />, na ilapat ang isang patakaran ng pinagmulan sa lahat ng kahilingan rito. Pero sa halip na maghatid ng patakaran, na-redirect nito ang browser sa ibang lugar, na pumipigil sa browser na matupad ang iyong kahilingan para sa <ph name="SITE" />. Magagamit ang mga patakaran ng pinagmulan ng mga operator ng site para i-configure ang seguridad at iba pang property para sa isang site.</translation>
 <translation id="3701427423622901115">Tinanggap ang pag-reset.</translation>
 <translation id="3704162925118123524">Ang network na ginagamit mo ay maaaring humiling sa iyo na bisitahin ang page ng pag-login nito.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -548,6 +576,7 @@
 <translation id="382518646247711829">Kung gumagamit ka ng proxy server...</translation>
 <translation id="3828924085048779000">Hindi pinapayagan ang walang laman na passphrase.</translation>
 <translation id="3831915413245941253">Nag-install ang <ph name="ENROLLMENT_DOMAIN" /> ng mga extension para sa mga karagdagang function. May access ang mga extension sa ilan sa iyong data.</translation>
+<translation id="3832522519263485449">Multiple punch left</translation>
 <translation id="385051799172605136">Bumalik</translation>
 <translation id="3858027520442213535">I-update ang petsa at oras</translation>
 <translation id="3884278016824448484">Sumasalungat na tagatukoy ng device</translation>
@@ -569,6 +598,7 @@
 <translation id="3973234410852337861">Naka-block ang <ph name="HOST_NAME" /></translation>
 <translation id="3981540111851280311">Na-enable ng <ph name="ENROLLMENT_DOMAIN" /> ang Proteksyon Laban sa Banta ng Chrome Enterprise sa iyong browser. May access ang Proteksyon Laban sa Banta ng Chrome Enterprise sa ilan sa iyong data.</translation>
 <translation id="3987940399970879459">Wala pang 1 MB</translation>
+<translation id="3990250421422698716">Jog offset</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{1 web page ang malapit}one{# web page ang malapit}other{# na web page ang malapit}}</translation>
 <translation id="4030383055268325496">&amp;I-undo ang pagdagdag</translation>
 <translation id="4032320456957708163">Pinapamahalaan ng <ph name="ENROLLMENT_DOMAIN" /> ang iyong browser</translation>
@@ -589,6 +619,7 @@
 <translation id="4112140312785995938">Mag-seek Pabalik</translation>
 <translation id="4116663294526079822">Palaging payagan sa site na ito</translation>
 <translation id="4117700440116928470">Hindi sinusuportahan ang saklaw ng patakaran.</translation>
+<translation id="4123572138124678573">Triple punch bottom</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 pa}one{# pa}other{# pa}}</translation>
 <translation id="4130226655945681476">Suriin ang mga cable, modem at router ng network</translation>
 <translation id="413544239732274901">Matuto pa</translation>
@@ -625,6 +656,7 @@
     &lt;h4&gt;Hakbang 5: Humingi ng karagdagang tulong&lt;/h4&gt;
     &lt;p&gt;Kung nakikita mo pa rin ang error, makipag-ugnayan sa may-ari ng website.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />Subukang magpatakbo ng Network Diagnostics<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />Magpatuloy sa <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">Wasto</translation>
 <translation id="4250431568374086873">Hindi ganap na ligtas ang iyong koneksyon sa site na ito</translation>
 <translation id="4250680216510889253">Hindi</translation>
@@ -638,6 +670,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{Na-save na ang card na ito sa iyong Google Account}one{Na-save na ang mga card na ito sa iyong Google Account}other{Na-save na ang mga card na ito sa iyong Google Account}}</translation>
 <translation id="428847186335018806">I-scan ang mga file na dina-download o ina-upload mo sa Chrome.</translation>
 <translation id="42981349822642051">Palawakin</translation>
+<translation id="4300675098767811073">Multiple punch right</translation>
 <translation id="4302965934281694568">Chou3 (Envelope)</translation>
 <translation id="4305817255990598646">Lumipat</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -652,6 +685,7 @@
 <translation id="4356973930735388585">Maaaring subukan ng mga attacker sa site na ito na mag-install ng mga mapanganib na program sa iyong computer na magnanakaw o magde-delete ng impormasyon mo (halimbawa, mga larawan, password, mensahe at credit card).</translation>
 <translation id="4358461427845829800">Pamahalaan ang mga paraan ng pagbabayad...</translation>
 <translation id="4367563149485757821">Number-12 (Envelope)</translation>
+<translation id="437058704415269440">Balanse sa Account</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">Inaasahang <ph name="VALUE_TYPE" /> na halaga.</translation>
 <translation id="4377125064752653719">Tinangka mong maabot ang <ph name="DOMAIN" />, subalit ang certificate na ipinakita ng server ay binawi ng nagbigay nito. Nangangahulugan ito na ang mga kredensyal sa seguridad na ipinakita ng server ay talagang hindi dapat pagkatiwalaan. Maaaring nakikipag-ugnay ka sa isang nang-aatake.</translation>
@@ -693,8 +727,10 @@
 <translation id="4594403342090139922">&amp;I-undo ang Pagtanggal</translation>
 <translation id="4597348597567598915">Laki 8</translation>
 <translation id="4600854749408232102">C6/C5 (Envelope)</translation>
+<translation id="4635654612248442824">Hiniling ng site na <ph name="ORIGIN" /> na ilalapat ng patakaran ng pinagmulan ang lahat ng kahilingan nito, pero hindi pa mailalapat sa ngayon ang patakarang ito.</translation>
 <translation id="464342062220857295">Mga feature sa paghahanap</translation>
 <translation id="4646534391647090355">Dalhin na ako roon</translation>
+<translation id="4658638640878098064">Staple top left</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; naglalaman ng mga error ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation>
 <translation id="467809019005607715">Google Slides</translation>
@@ -716,6 +752,7 @@
 <translation id="4756388243121344051">&amp;History</translation>
 <translation id="4758311279753947758">Magdagdag ng impormasyon sa pakikipag-ugnayan</translation>
 <translation id="4764776831041365478">Ang webpage sa <ph name="URL" /> ay maaaring pansamantalang hindi gumagana o maaaring permanente itong inilipat sa isang bagong web address.</translation>
+<translation id="4766713847338118463">Dual staple bottom</translation>
 <translation id="4771973620359291008">Isang hindi alam na error ang nangyari.</translation>
 <translation id="4780900888022378816">Pinapamahalaan ng <ph name="ENROLLMENT_DOMAIN" /> ang iyong device at pinapamahalaan ng <ph name="ACCOUNT_DOMAIN" /> ang account mo.</translation>
 <translation id="4785689107224900852">Lumipat sa tab na ito</translation>
@@ -738,6 +775,7 @@
 <translation id="4880827082731008257">History ng paghahanap</translation>
 <translation id="4881695831933465202">Buksan</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">Punch top left</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{at 1 pang web page}one{at # pang web page}other{at # pang web page}}</translation>
 <translation id="4923417429809017348">Na-translate ang pahinang ito mula sa hindi kilalang wika patungo sa <ph name="LANGUAGE_LANGUAGE" /></translation>
 <translation id="4923459931733593730">Pagbabayad</translation>
@@ -749,6 +787,7 @@
 <translation id="495170559598752135">Mga Pagkilos</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">Palawakin ang listahan</translation>
+<translation id="4973922308112707173">Dual punch top</translation>
 <translation id="4974590756084640048">Muling i-enable ang mga babala</translation>
 <translation id="4984339528288761049">Prc5 (Envelope)</translation>
 <translation id="4989163558385430922">Tingnan lahat</translation>
@@ -776,6 +815,7 @@
 <translation id="5087286274860437796">Hindi angkop ang certificate ng server sa oras na ito.</translation>
 <translation id="5087580092889165836">Magdagdag ng card</translation>
 <translation id="5089810972385038852">Estado</translation>
+<translation id="5093232627742069661">Z-fold</translation>
 <translation id="5094747076828555589">Hindi mapatunayan ng server na ito na ito ay <ph name="DOMAIN" />; hindi pinagkakatiwalaan ng Chromium ang certificate ng seguridad nito. Maaaring dulot ito ng maling configuration o isang umaatake na hinahadlangan ang iyong koneksyon.</translation>
 <translation id="5095208057601539847">Lalawigan</translation>
 <translation id="5097099694988056070">Mga istatistika ng device gaya ng paggamit ng CPU/RAM</translation>
@@ -812,6 +852,9 @@
 <translation id="5251803541071282808">Cloud</translation>
 <translation id="5252000469029418751">C7 (Envelope)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">Kumpleto na ang Pagbabayad</translation>
+<translation id="5266128565379329178">Bind top</translation>
+<translation id="5269225904387178860">Quad punch bottom</translation>
 <translation id="5269999699920406580">Ang makakapagtakda lang ng mga feature na nalalapat sa buong system ay ang may-ari: <ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">Babala: Hindi na-merge ang patakarang ito bilang tinukoy sa patakarang PolicyDictionaryMultipleSourceMergeList dahil hindi ito bahagi ng mga patakaran ng diksyunaryo na puwedeng i-merge.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -824,6 +867,7 @@
 <translation id="5300589172476337783">Ipakita</translation>
 <translation id="5308380583665731573">Kumonekta</translation>
 <translation id="5308689395849655368">Hindi pinagana ang pag-uulat ng pag-crash.</translation>
+<translation id="5314967030527622926">Booklet maker</translation>
 <translation id="5317780077021120954">I-save</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> ng <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">Pumili ng Impormasyon sa Pakikipag-ugnayan</translation>
@@ -839,6 +883,7 @@
 <translation id="5384855140246857529">Para magamit ang iyong mga card sa lahat ng device, mag-sign in at i-on ang pag-sync.</translation>
 <translation id="5386426401304769735">Naglalaman ang chain ng certificate para sa site na ito ng certificate na naka-sign gamit ang SHA-1.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">Edge stitch right</translation>
 <translation id="540969355065856584">Hindi mapatunayan ng server na ito ay ang <ph name="DOMAIN" />; walang bisa ang certificate sa seguridad nito sa pagkakataong ito. Maaaring dahil ito sa isang maling pag-configure o may isang attacker na humahadlang sa iyong koneksyon.</translation>
 <translation id="5421136146218899937">I-clear ang data sa pag-browse...</translation>
 <translation id="5430298929874300616">Alisin ang bookmark</translation>
@@ -864,6 +909,7 @@
 <translation id="5510766032865166053">Maaaring inilipat o na-delete ito.</translation>
 <translation id="5523118979700054094">Pangalan ng patakaran</translation>
 <translation id="552553974213252141">Nakuha ba nang tama ang text?</translation>
+<translation id="55293785478302737">Edge stitch</translation>
 <translation id="553484882784876924">Prc6 (Envelope)</translation>
 <translation id="5540224163453853">Hindi mahanap ang hiniling na artikulo.</translation>
 <translation id="5541546772353173584">Magdagdag ng Email</translation>
@@ -932,6 +978,7 @@
 <translation id="5893752035575986141">Tinatanggap ang mga credit card.</translation>
 <translation id="5895138241574237353">I-restart</translation>
 <translation id="5901630391730855834">Dilaw</translation>
+<translation id="5905445707201418379">Na-black ayon sa patakaran ng pinagmulan ng <ph name="ORIGIN" />.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (naka-sync)</translation>
 <translation id="5916664084637901428">Naka-on</translation>
 <translation id="59174027418879706">Pinagana</translation>
@@ -950,6 +997,7 @@
 <translation id="598637245381783098">Hindi mabuksan ang app sa pagbabayad</translation>
 <translation id="5989320800837274978">Hindi tunukoy ang alinman sa mga hindi nababagong proxy server o isang .pac script URL.</translation>
 <translation id="5990559369517809815">Na-block ng isang extension ang mga kahilingan sa server.</translation>
+<translation id="5992691462791905444">Engineering Z-fold</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> (na) resulta para sa '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">Taon</translation>
@@ -958,8 +1006,11 @@
 <translation id="6017850046339264347">Ang mga umaatake sa <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ay maaaring mag-install ng mga mapanlinlang na app na nagpapanggap na ibang bagay o nangongolekta ng data na maaaring gamitin upang subaybayan ka. <ph name="BEGIN_LEARN_MORE_LINK" />Matuto pa<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (naka-sync)</translation>
 <translation id="6027201098523975773">Maglagay ng pangalan</translation>
+<translation id="603068602130820122">Dual staple right</translation>
+<translation id="6032955021262906325">Bind left</translation>
 <translation id="6034000775414344507">Light Grey</translation>
 <translation id="6034283069659657473">10x14 (Envelope)</translation>
+<translation id="6034514109191629503">Accordion fold</translation>
 <translation id="6039846035001940113">Kung magpapatuloy ang problema, makipag-ugnayan sa may-ari ng site.</translation>
 <translation id="6040143037577758943">Isara</translation>
 <translation id="6044573915096792553">Laki 12</translation>
@@ -970,6 +1021,7 @@
 <translation id="6058977677006700226">Gamitin ang iyong mga card sa lahat ng device mo?</translation>
 <translation id="6059925163896151826">Mga USB device</translation>
 <translation id="6060009363608157444">Invalid ang DnsOverHttps mode.</translation>
+<translation id="6064217302520318294">Lock ng screen</translation>
 <translation id="6080696365213338172">Nag-access ka ng nilalaman gamit ang isang certificate na ibinigay ng administrator. Maaaring harangin ng iyong administrator ang data na ibibigay mo sa <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">I-annotate</translation>
 <translation id="610911394827799129">Maaaring may iba pang anyo ng history ng pag-browse ang iyong Google Account sa <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
@@ -977,6 +1029,7 @@
 <translation id="6146055958333702838">Tingnan ang anumang mga kable at i-reboot ang anumang mga router, modem o iba
     pang mga network device na maaaring ginagamit mo.</translation>
 <translation id="614940544461990577">Subukang:</translation>
+<translation id="6150036310511284407">Triple punch left</translation>
 <translation id="6151417162996330722">Masyadong mahaba ang panahon ng pagkakaroon ng bisa ng certificate ng server.</translation>
 <translation id="6157877588268064908">Para makita ang mga paraan at kinakailangan sa pagpapadala, pumili ng address</translation>
 <translation id="6165508094623778733">Matuto pa</translation>
@@ -984,7 +1037,9 @@
 <translation id="6177128806592000436">Hindi ligtas ang iyong koneksyon sa site na ito</translation>
 <translation id="6203231073485539293">Suriin ang iyong koneksyon sa Internet</translation>
 <translation id="6218753634732582820">Gusto mo bang alisin ang address sa Chromium?</translation>
+<translation id="622039917539443112">Parallel fold</translation>
 <translation id="6221345481584921695">Kamakailan lang, ang Google Safe Browsing ay <ph name="BEGIN_LINK" />nakakita ng malware<ph name="END_LINK" /> sa <ph name="SITE" />. Paminsan-minsan, nagkakaroon ng malware ang mga website na karaniwang ligtas. Ang nakakahamak na content ay galing sa <ph name="SUBRESOURCE_HOST" />, isang kilalang nagkakalat ng malware.</translation>
+<translation id="6234122620015464377">Paikliin pagkatapos ng bawat dokumento</translation>
 <translation id="6240447795304464094">Logo ng Google Pay</translation>
 <translation id="6251924700383757765">Patakaran sa privacy</translation>
 <translation id="6254436959401408446">Hindi sapat ang memory upang mabuksan ang page na ito</translation>
@@ -1010,17 +1065,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{Wala}=1{1 password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}=2{2 password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}one{# password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}other{# na password (para sa <ph name="DOMAIN_LIST" />, naka-sync)}}</translation>
 <translation id="6358450015545214790">Ano ang ibig sabihin ng mga ito?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">Dual staple left</translation>
 <translation id="6377268785556383139">1 resulta para sa '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">Maaaring magkaroon ng singil.</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{1 pang suhestyon}one{# pang suhestyon}other{# pang suhestyon}}</translation>
 <translation id="6387754724289022810">Para mas mabilis na makapagbayad sa susunod, i-save ang iyong card at billing address sa Google Account mo at sa device na ito.</translation>
+<translation id="6390200185239044127">Z-fold half</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">Hindi na ginagamit ang patakarang ito. Dapat mong gamitin ang patakarang <ph name="NEW_POLICY" /> sa halip.</translation>
 <translation id="6404511346730675251">I-edit ang bookmark</translation>
 <translation id="6406765186087300643">C0 (Envelope)</translation>
 <translation id="6410264514553301377">Ilagay ang petsa ng pag-expire at CVC para sa <ph name="CREDIT_CARD" /></translation>
 <translation id="6415778972515849510">Makakatulong sa iyo ang Chromium na protektahan ang iyong Google Account at palitan ang password mo.</translation>
+<translation id="6427730057873428458">Gate fold</translation>
 <translation id="6431585503458005759">Huwag mag-store</translation>
 <translation id="6433490469411711332">I-edit ang impormasyon sa pakikipag-ugnayan</translation>
 <translation id="6433595998831338502">Tumangging kumonekta ang <ph name="HOST_NAME" />.</translation>
@@ -1031,6 +1089,7 @@
 <translation id="6446608382365791566">Magdagdag ng higit pang impormasyon</translation>
 <translation id="6447842834002726250">Cookies</translation>
 <translation id="6451458296329894277">Muling pagsusumite ng Form sa Pagkumpirma</translation>
+<translation id="6457206614190510200">Saddle stitch</translation>
 <translation id="6465306955648956876">Pamahalaan ang mga password...</translation>
 <translation id="647261751007945333">Mga patakaran sa device</translation>
 <translation id="6476284679642588870">Pamahalaan ang mga paraan ng pagbabayad</translation>
@@ -1045,9 +1104,11 @@
 <translation id="6529602333819889595">&amp;Gawing Muli ang Pagtanggal</translation>
 <translation id="6534179046333460208">Mga suhestyon sa Pisikal na Web</translation>
 <translation id="6545864417968258051">Pag-scan ng Bluetooth</translation>
+<translation id="6547208576736763147">Dual punch left</translation>
 <translation id="6554795675067793129">Pinapamahalaan ng <ph name="ENROLLMENT_DOMAIN" /> ang iyong account.</translation>
 <translation id="6556866813142980365">Redo</translation>
 <translation id="6569060085658103619">Isang page ng extension ang tinitingnan mo</translation>
+<translation id="6573200754375280815">Dual punch right</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
 <translation id="6579990219486187401">Light Pink</translation>
 <translation id="6583674473685352014">B6 (Envelope)</translation>
@@ -1066,6 +1127,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{Wala}=1{Mula sa 1 site (hindi ka masa-sign out sa iyong Google Account)}one{Mula sa # site (hindi ka masa-sign out sa iyong Google Account)}other{Mula sa # na site (hindi ka masa-sign out sa iyong Google Account)}}</translation>
 <translation id="6652101503459149953">Gamitin ang Windows Hello</translation>
 <translation id="6657585470893396449">Password</translation>
+<translation id="6665553082534466207">Triple punch right</translation>
 <translation id="6670613747977017428">Bumalik sa kaligtasan.</translation>
 <translation id="6671697161687535275">Gusto mo bang alisin ang form para sa suhestyon sa Chromium?</translation>
 <translation id="6685834062052613830">Mag-sign out at kumpletuhin ang setup</translation>
@@ -1286,6 +1348,7 @@
 <translation id="7764225426217299476">Magdagdag ng address</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">Prefecture</translation>
+<translation id="7791196057686275387">Bale</translation>
 <translation id="7791543448312431591">Idagdag</translation>
 <translation id="7800304661137206267">Na-encrypt ang koneksyon gamit ang <ph name="CIPHER" />, kasama ang <ph name="MAC" /> para sa pagpapatunay ng mensahe at <ph name="KX" /> bilang mekanismo ng pangunahing pagpapalit.</translation>
 <translation id="7802523362929240268">Lehitimo ang site</translation>
@@ -1306,22 +1369,27 @@
 <translation id="7882421473871500483">Brown</translation>
 <translation id="7887683347370398519">Tingnan ang iyong CVC at subukang muli</translation>
 <translation id="7904208859782148177">C3 (Envelope)</translation>
+<translation id="7932579305932748336">Coat</translation>
 <translation id="79338296614623784">Maglagay ng wastong numero ng telepono</translation>
+<translation id="7934052535022478634">Kumpleto na ang pagbabayad</translation>
 <translation id="7935318582918952113">DOM Distiller</translation>
 <translation id="7937554595067888181">Mag-e-expire sa <ph name="EXPIRATION_DATE_ABBR" /></translation>
 <translation id="7938958445268990899">Wala pang bisa ang certificate ng server.</translation>
 <translation id="7942349550061667556">Pula</translation>
 <translation id="7947285636476623132">Tingnan ang iyong taon ng pag-expire at subukang muli</translation>
 <translation id="7951415247503192394">(32-bit)</translation>
+<translation id="7953569069500808819">Edge stitch top</translation>
 <translation id="7956713633345437162">Mga bookmark sa mobile</translation>
 <translation id="7961015016161918242">Hindi Kailanman</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">Bind</translation>
 <translation id="7995512525968007366">Hindi Tinukoy</translation>
 <translation id="800218591365569300">Subukang isara ang iba pang tab o program upang magbakante ng memory.</translation>
 <translation id="8004582292198964060">Browser</translation>
 <translation id="8009225694047762179">Pamahalaan ang Mga Password</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{Ise-save ang card na ito at ang billing address nito. Magagamit mo ito kapag nag-sign in ka sa <ph name="USER_EMAIL" />.}one{Ise-save ang mga card na ito at ang mga billing address ng mga ito. Magagamit mo ang mga ito kapag nag-sign in ka sa <ph name="USER_EMAIL" />.}other{Ise-save ang mga card na ito at ang mga billing address ng mga ito. Magagamit mo ang mga ito kapag nag-sign in ka sa <ph name="USER_EMAIL" />.}}</translation>
 <translation id="8025119109950072390">Maaari kang linlangin ng mga attacker sa site na ito na gumawa ng mga bagay na mapanganib tulad ng pag-i-install ng software o pagbubunyag ng iyong personal na impormasyon (halimbawa, mga password, numero ng telepono o credit card).</translation>
+<translation id="8028960012888758725">Trim after job</translation>
 <translation id="8034522405403831421">Nasa <ph name="SOURCE_LANGUAGE" /> ang pahinang ito. Isalin ito sa <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="8035152190676905274">Pen</translation>
 <translation id="8037117624646282037">Sino ang gumamit ng device na ito kamakailan</translation>
@@ -1336,6 +1404,7 @@
 <translation id="8074253406171541171">10x13 (Envelope)</translation>
 <translation id="8078141288243656252">Hindi maaaring i-annotate kapag naka-rotate</translation>
 <translation id="8079031581361219619">I-reload ang site?</translation>
+<translation id="8086971161893892807">Draft</translation>
 <translation id="8088680233425245692">Hindi natingnan ang artikulo.</translation>
 <translation id="808894953321890993">Palitan ang password</translation>
 <translation id="8090403583893450254">Laki 20</translation>
@@ -1351,6 +1420,7 @@
 <translation id="8131740175452115882">Kumpirmahin</translation>
 <translation id="8149426793427495338">Nag-sleep ang iyong computer.</translation>
 <translation id="8150722005171944719">Hindi nababasa ang file sa <ph name="URL" />. Maaaring ito ay naalis, nalipat, o maaaring pinipigilan ng mga pagpapahintulot ng file ang access.</translation>
+<translation id="8163866351304776260">Quad punch left</translation>
 <translation id="8175796834047840627">Nag-aalok ang Chrome na i-save ang iyong mga card sa Google Account mo dahil naka-sign in ka. Maaari mong baguhin ang gawing ito sa mga setting.</translation>
 <translation id="8184538546369750125">Gamitin ang pangkalahatang default (Payagan)</translation>
 <translation id="8194797478851900357">&amp;I-undo ang Paglilipat</translation>
@@ -1373,6 +1443,7 @@
 <translation id="8253091569723639551">Kinakailangan ang billing address</translation>
 <translation id="825929999321470778">Ipakita ang Lahat ng Naka-save na Password</translation>
 <translation id="8261506727792406068">I-delete</translation>
+<translation id="8262952874573525464">Edge stitch bottom</translation>
 <translation id="8267698848189296333">Nagsa-sign in bilang <ph name="USERNAME" /></translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">Mag-sign In</translation>
@@ -1381,6 +1452,7 @@
 <translation id="8293206222192510085">Magdagdag ng Bookmark</translation>
 <translation id="8294431847097064396">Pinagmulan</translation>
 <translation id="8298115750975731693">Maaaring hilingin ng Wi-Fi na ginagamit mo (<ph name="WIFI_NAME" />) na bisitahin mo ang <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
+<translation id="830498451218851433">Fold half</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">Nabigo ang translation dahil sa problema sa koneksyon sa network.</translation>
 <translation id="8332188693563227489">Tinanggihan ang access sa <ph name="HOST_NAME" /></translation>
@@ -1409,6 +1481,7 @@
 <translation id="8461694314515752532">I-encrypt ang naka-sync na data gamit ang iyong sariling passphrase sa pag-sync</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 credit card}one{# credit card}other{# na credit card}}</translation>
 <translation id="8473863474539038330">Mga address at higit pa</translation>
+<translation id="8479754468255770962">Staple bottom left</translation>
 <translation id="8483780878231876732">Upang gumamit ng mga card mula sa iyong Google Account, mag-sign in sa Chrome</translation>
 <translation id="8488350697529856933">Nalalapat sa</translation>
 <translation id="8498891568109133222">Masyadong matagal bago nakatugon ang <ph name="HOST_NAME" />.</translation>
@@ -1416,6 +1489,7 @@
 <translation id="8503813439785031346">Username</translation>
 <translation id="8508648098325802031">Icon ng paghahanap</translation>
 <translation id="8522552481199248698">Matutulungan ka ng Chrome na protektahan ang iyong Google Account at palitan ang password mo.</translation>
+<translation id="8542014550340843547">Triple staple bottom</translation>
 <translation id="8543181531796978784">Maaari kang <ph name="BEGIN_ERROR_LINK" />mag-ulat ng problema sa pagtukoy<ph name="END_ERROR_LINK" /> o, kung nauunawaan mo ang mga panganib sa iyong seguridad, <ph name="BEGIN_LINK" />bisitahin ang hindi ligtas na site na ito<ph name="END_LINK" />.</translation>
 <translation id="8553075262323480129">Nabigo ang pag-translate dahil hindi matukoy ang wika ng pahina.</translation>
 <translation id="8557066899867184262">Makikita ang CVC sa likod ng iyong card.</translation>
@@ -1437,6 +1511,7 @@
 <translation id="8703575177326907206">Ang iyong koneksyon sa <ph name="DOMAIN" /> ay hindi naka-encrypt.</translation>
 <translation id="8718314106902482036">Hindi nakumpleto ang pagbabayad</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, suhestyon sa paghahanap</translation>
+<translation id="8719528812645237045">Multiple punch top</translation>
 <translation id="8723954843026426558">Sumasang-ayon ako sa mga tuntunin at kundisyon, patakaran sa privacy, at karapatang umalis ng <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="8725066075913043281">Muling subukan</translation>
 <translation id="8728672262656704056">Naging incognito ka</translation>
@@ -1455,6 +1530,7 @@
 <translation id="8792621596287649091">Maaari kang mawalan ng access sa iyong account sa <ph name="ORG_NAME" /> o manakawan ng pagkakakilanlan. Inirerekomenda ng Chromium na palitan ang iyong password ngayon.</translation>
 <translation id="8800988563907321413">Lalabas dito ang iyong mga suhestyon na malapit</translation>
 <translation id="8805819170075074995">Listahan ng entry na "<ph name="LANGUAGE_ID" />": Binalewala ang entry dahil kasama rin ito sa patakarang SpellcheckLanguage.</translation>
+<translation id="8807160976559152894">Paikliin pagkatapos ng bawat page</translation>
 <translation id="8820817407110198400">Mga Bookmark</translation>
 <translation id="883848425547221593">Iba Pang Mga Bookmark</translation>
 <translation id="884264119367021077">Shipping address</translation>
@@ -1462,6 +1538,7 @@
 <translation id="885730110891505394">Pagbabahagi sa Google</translation>
 <translation id="8858065207712248076">Inirerekomenda ng Chrome na i-reset ang iyong password sa <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> kung ginamit mo ito sa iba pang site.</translation>
 <translation id="8866481888320382733">Error sa pag-parse ng mga setting ng patakaran</translation>
+<translation id="8866928039507595380">Fold</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">Recently Closed</translation>
 <translation id="8874824191258364635">Maglagay ng wastong numero ng card</translation>
@@ -1469,6 +1546,7 @@
 <translation id="8903921497873541725">Mag-zoom in</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google Account</translation>
+<translation id="892588693504540538">Punch top right</translation>
 <translation id="8931333241327730545">Gusto mo bang i-save ang card na ito sa iyong Google Account?</translation>
 <translation id="8932102934695377596">Nahuhuli ang iyong orasan</translation>
 <translation id="893332455753468063">Magdagdag ng Pangalan</translation>
@@ -1530,6 +1608,7 @@
 <translation id="9174917557437862841">Button na lumipat ng tab, pindutin ang Enter para lumipat sa tab na ito</translation>
 <translation id="9183302530794969518">Google Docs</translation>
 <translation id="9183425211371246419">Gumagamit ng hindi sinusuportahang protocol ang <ph name="HOST_NAME" />.</translation>
+<translation id="9191834167571392248">Punch bottom left</translation>
 <translation id="9205078245616868884">Na-encrypt ang iyong data gamit ang iyong passphrase sa pag-sync. Ilagay ito upang simulan ang pag-sync.</translation>
 <translation id="9207861905230894330">Hindi naidagdag ang artikulo.</translation>
 <translation id="9215416866750762878">Pinipigilan ng isang application na makakonekta nang ligtas ang Chrome sa site na ito</translation>
@@ -1540,7 +1619,9 @@
 <translation id="936602727769022409">Maaari kang mawalan ng access sa iyong Google Account. Inirerekomenda ng Chromium na palitan na ang iyong password. Hihilingin sa iyong mag-sign in.</translation>
 <translation id="939736085109172342">Bagong folder</translation>
 <translation id="945855313015696284">Tingnan ang impormasyon sa ibaba at mag-delete ng anumang invalid na card</translation>
+<translation id="950736567201356821">Triple punch top</translation>
 <translation id="951104842009476243">Mga Tinatanggap na Debit at Prepaid Card</translation>
+<translation id="961663415146723894">Bind bottom</translation>
 <translation id="962484866189421427">Maaaring subukan ng content na itong mag-install ng mga mapanlinlang na app na nagpapanggap na ibang bagay o nangongolekta ng data na maaaring gamitin para subaybayan ka. <ph name="BEGIN_LINK" />Ipakita pa rin<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">Official Build</translation>
 <translation id="973773823069644502">Magdagdag ng Address sa Paghahatid</translation>
diff --git a/components/strings/components_strings_fr.xtb b/components/strings/components_strings_fr.xtb
index 67e7753..d346c27 100644
--- a/components/strings/components_strings_fr.xtb
+++ b/components/strings/components_strings_fr.xtb
@@ -1018,6 +1018,7 @@
 <translation id="6058977677006700226">Vous utilisez vos cartes sur tous vos appareils ?</translation>
 <translation id="6059925163896151826">Appareils USB</translation>
 <translation id="6060009363608157444">Mode DnsOverHttps non valide.</translation>
+<translation id="6064217302520318294">Verrouillage de l'écran</translation>
 <translation id="6080696365213338172">Vous avez accédé à du contenu à l'aide d'un certificat fourni par l'administrateur. Les données que vous fournissez à <ph name="DOMAIN" /> peuvent être interceptées par votre administrateur.</translation>
 <translation id="6094273045989040137">Annoter</translation>
 <translation id="610911394827799129">Votre compte Google conserve peut-être d'autres contenus d'historique de navigation sur la page <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_gu.xtb b/components/strings/components_strings_gu.xtb
index 5e467ae..d6d8473d 100644
--- a/components/strings/components_strings_gu.xtb
+++ b/components/strings/components_strings_gu.xtb
@@ -1030,6 +1030,7 @@
 <translation id="6058977677006700226">તમારા બધાં ડિવાઇસ પર તમારાં કાર્ડનો ઉપયોગ કરીએ?</translation>
 <translation id="6059925163896151826">USB ઉપકરણો</translation>
 <translation id="6060009363608157444">અમાન્ય DnsOverHttps મોડ.</translation>
+<translation id="6064217302520318294">સ્ક્રીન લૉક</translation>
 <translation id="6080696365213338172">તમે વ્યવસ્થાપક-પ્રદત્ત પ્રમાણપત્રનો ઉપયોગ કરીને કન્ટેન્ટ ઍક્સેસ કરી છે. તમે <ph name="DOMAIN" /> ને પ્રદાન કરેલ ડેટા તમારા વ્યવસ્થાપક દ્વારા ઇન્ટરસેપ્ટ થઈ શકે છે.</translation>
 <translation id="6094273045989040137">એનોટેટ કરો</translation>
 <translation id="610911394827799129">તમારા Google એકાઉન્ટમાં <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> પર બ્રાઉઝિંગ ઇતિહાસના બીજા સ્વરૂપો હોય શકે છે</translation>
diff --git a/components/strings/components_strings_hi.xtb b/components/strings/components_strings_hi.xtb
index e68209f..6880d38 100644
--- a/components/strings/components_strings_hi.xtb
+++ b/components/strings/components_strings_hi.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">वाई-फ़ाई से फिर से कनेक्ट करें</translation>
 <translation id="1165039591588034296">गड़बड़ी</translation>
 <translation id="1175364870820465910">&amp;प्रिंट करें...</translation>
+<translation id="1175875016430184367">दाईं ओर ट्रिपल स्टेपल</translation>
 <translation id="1178581264944972037">रोकें</translation>
 <translation id="1181037720776840403">हटाएं</translation>
 <translation id="1197088940767939838">नारंगी</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">मैलवेयर स्कैनिंग</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />अपनी कुकी साफ़ करके देखें<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">बंद की गई सुविधाएं</translation>
+<translation id="1314509827145471431">बाइंड राइट</translation>
 <translation id="1320233736580025032">पीआरसी1 (एन्वेलप)</translation>
 <translation id="132301787627749051">क्लिपबोर्ड इमेज खोजें</translation>
 <translation id="1323433172918577554">और दिखाएं</translation>
 <translation id="132390688737681464">पतों की जानकारी सेव करें और फ़ॉर्म में भरें</translation>
+<translation id="1330449323196174374">बाईं ओर गेट फ़ोल्ड</translation>
 <translation id="1333989956347591814">आपकी गतिविधि इन्हें <ph name="BEGIN_EMPHASIS" />अब भी दिखाई दे सकती है<ph name="END_EMPHASIS" />:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />जिन वेबसाइट पर आप जाते हैं
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">वर्शन के बारे में</translation>
 <translation id="1376836354785490390">कम दिखाएं</translation>
 <translation id="1377321085342047638">कार्ड नंबर</translation>
+<translation id="1380591466760231819">लेटर फ़ोल्ड</translation>
 <translation id="138218114945450791">हल्का नीला</translation>
 <translation id="1382194467192730611">आपके व्यवस्थापक ने इस यूएसबी डिवाइस की मंज़ूरी दी है</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> ने कोई डेटा नहीं भेजा.</translation>
 <translation id="1405567553485452995">हल्का हरा</translation>
 <translation id="1407135791313364759">सभी बुकमार्क खोलें</translation>
+<translation id="1408787208417187241">सबसे ऊपर ट्रिपल स्टेपल</translation>
 <translation id="1413809658975081374">निजता गड़बड़ी</translation>
 <translation id="1426410128494586442">हां</translation>
 <translation id="1430915738399379752">प्रिंट करें</translation>
+<translation id="1442386063175183758">राइट गेट फ़ोल्ड</translation>
+<translation id="1442987760062738829">पंच</translation>
 <translation id="1455413310270022028">इरेज़र</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">और दिखाएं</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">स्वीकार किए जाने वाले क्रेडिट और डेबिट कार्ड</translation>
 <translation id="194030505837763158"><ph name="LINK" /> पर जाएं</translation>
 <translation id="1945968466830820669">आपके संगठन के खाते का एक्सेस खो सकता है या आपकी पहचान चोरी हो सकती है. Chromium आपको अभी अपना पासवर्ड बदलने का सुझाव देता है.</translation>
+<translation id="1947454675006758438">सबसे ऊपर दाईं ओर स्टेपल</translation>
 <translation id="1948773908305951926">स्वीकृत प्रीपेड कार्ड</translation>
 <translation id="1962204205936693436"><ph name="DOMAIN" /> बुकमार्क</translation>
 <translation id="1973335181906896915">क्रमबद्ध करने में गड़बड़ी</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">Chrome के ब्राउज़िंग इतिहास का डेटा हटाएं</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{और 1 ज़्यादा}one{और # ज़्यादा}other{और # ज़्यादा}}</translation>
 <translation id="2003709556000175978">अपना पासवर्ड अभी रीसेट करें</translation>
+<translation id="2003775180883135320">सबसे ऊपर क्वाड पंच</translation>
 <translation id="2025186561304664664">प्रॉक्‍सी अपने-आप कॉन्‍फ़‍िगर पर सेट है.</translation>
 <translation id="202813660234680402">नहीं, न जोड़ें</translation>
 <translation id="2030481566774242610">क्या आप मतलब <ph name="LINK" /> से है?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">आवाज़</translation>
 <translation id="2094505752054353250">डोमेन का गलत-मिलान</translation>
 <translation id="2096368010154057602">विभाग</translation>
+<translation id="2099652385553570808">बाईं ओर ट्रिपल स्टेपल</translation>
 <translation id="2102134110707549001">मज़बूत पासवर्ड सुझाएं…</translation>
 <translation id="2108755909498034140">अपना कंप्यूटर फिर से चालू करें</translation>
 <translation id="2111256659903765347">सुपर-ए</translation>
 <translation id="2113977810652731515">कार्ड</translation>
 <translation id="2114841414352855701">ध्यान नहीं दिया गया क्योंकि यह <ph name="POLICY_NAME" /> द्वारा ओवरराइड की गई थी.</translation>
 <translation id="2119505898009119320">इसको जारी: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">नीचे दाईं ओर पंच</translation>
 <translation id="2129079103035905234">हलचल पकड़ने वाले सेंसर</translation>
 <translation id="213826338245044447">मोबाइल बुकमार्क</translation>
 <translation id="214556005048008348">भुगतान न करें</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">फ़ोन नंबर</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 पता}one{# पते}other{# पते}}</translation>
 <translation id="2187317261103489799">पता लगाएं (डिफ़ॉल्ट)</translation>
+<translation id="2188375229972301266">नीचे की ओर एक से ज़्यादा पंच</translation>
 <translation id="2202020181578195191">खत्म होने का मान्य वर्ष डालें</translation>
 <translation id="2212735316055980242">नीति नहीं मिली</translation>
 <translation id="2213606439339815911">प्रविष्टियां फ़ेच की जा रही हैं...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099"><ph name="BEGIN_LINK" />गड़बड़ी की पहचान करने वाले ऐप्लिकेशन<ph name="END_LINK" /> का उपयोग करके अपने कनेक्शन को ठीक करें</translation>
 <translation id="2239100178324503013">अभी भेजें</translation>
 <translation id="2248949050832152960">WebAuthn का इस्तेमाल करें</translation>
+<translation id="2250931979407627383">बाईं ओर Edge स्टिच</translation>
 <translation id="225207911366869382">यह मान इस नीति के लिए हटा दिया गया है.</translation>
 <translation id="2257315177824333709">माफ़ करें, आपके कार्ड को अभी सेव नहीं किया जा सकता</translation>
 <translation id="2262243747453050782">HTTP गड़बड़ी</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">फ़ोन नंबर</translation>
 <translation id="2277103315734023688">आगे बढ़ाएं</translation>
 <translation id="2283340219607151381">पतों की जानकारी सेव करें और फ़ॉर्म में भरें</translation>
+<translation id="2289385804009217824">ट्रिम करें</translation>
 <translation id="2292556288342944218">आपका इंटरनेट कनेक्शन ब्लॉक कर दिया गया है</translation>
 <translation id="2297722699537546652">बी5 (एन्वेलप)</translation>
 <translation id="2310021320168182093">शू2 (एन्वेलप)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">आपका एडमिन किसी दूसरे डिवाइस से आपके ब्राउज़र का सेटअप बदल सकता है. इस डिवाइस की गतिविधि को भी Chrome से बाहर प्रबंधित किया जा सकता है. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">सरकारी-कानूनी</translation>
 <translation id="2413528052993050574">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" />; इसका सुरक्षा प्रमाणपत्र निरस्त कर दिया गया है. ऐसा गलत कॉन्फ़िगरेशन के कारण या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
+<translation id="2438874542388153331">दाईं ओर क्वाड पंच</translation>
 <translation id="2463193859425327265">होम पेज बदलें</translation>
 <translation id="2463739503403862330">भरें</translation>
 <translation id="2465402087343596252">आर्किटेक्चर-ई</translation>
 <translation id="2465655957518002998">डिलीवरी का तरीका चुनें</translation>
+<translation id="2465688316154986572">स्टेपल</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />नेटवर्क निदान चलाकर देखें<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">इस पेज का अनुवाद करें</translation>
 <translation id="2479410451996844060">गलत खोज URL.</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">खाते की सुरक्षा करें</translation>
 <translation id="2515335152965840738">अनदेखा करें</translation>
 <translation id="2515629240566999685">अपने इलाके में सिग्नल की जाँच करें</translation>
+<translation id="2521385132275182522">नीचे दाईं ओर स्टेपल</translation>
 <translation id="2523886232349826891">सिर्फ़ इस डिवाइस पर सेव किया गया</translation>
 <translation id="2524461107774643265">ज़्यादा जानकारी जोड़ें</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{और 1 और व्यक्ति}one{और # और लोग}other{और # और लोग}}</translation>
@@ -326,10 +343,20 @@
 <translation id="2618023639789766142">सी10 (एन्वेलप)</translation>
 <translation id="2625385379895617796">आपकी घड़ी आगे है</translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> का सर्वर आईपी पता नहीं मिल सका.</translation>
+<translation id="2638745661847473633">आप जिस सर्वर पर जा रहे हैं उसके लिए, <ph name="ORIGIN" />, ने अनुरोध किया है कि
+    उसके सभी अनुरोधों पर मूल नीति लागू की जाए. हालांकि, अब इसने
+    अमान्य नीति लागू कर दी है. इस वजह से ब्राउज़र <ph name="SITE" />
+    के लिए आपका अनुरोध पूरा नहीं कर पा रहा है. साइट ऑपरेटर, साइट की सुरक्षा और दूसरी प्रॉपर्टी को कॉन्फ़िगर करने के लिए
+    मूल नीतियों का इस्तेमाल कर सकते हैं.</translation>
 <translation id="2639739919103226564">स्थिति:</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">फ़ाइल को एक्सेस नहीं दिया गया था</translation>
 <translation id="2653659639078652383">सबमिट करें</translation>
+<translation id="2660650542324841986">आप जिस सर्वर पर जा रहे हैं उसके लिए, <ph name="ORIGIN" />, ने अनुरोध किया है कि
+    उसके सभी अनुरोधों पर मूल नीति लागू की जाए. हालांकि, अब यह
+    नीति के मुताबिक काम नहीं कर रहा है. इस वजह से
+    ब्राउज़र <ph name="SITE" /> के लिए आपके अनुरोध को पूरा नहीं कर पा रहा है. साइट ऑपरेटर, साइट की सुरक्षा और दूसरी प्रॉपर्टी को कॉन्फ़िगर करने के लिए
+    मूल नीतियों का इस्तेमाल कर सकते हैं.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{कोई पासवर्ड नहीं है}=1{(<ph name="DOMAIN_LIST" /> के लिए) 1 पासवर्ड}=2{(<ph name="DOMAIN_LIST" /> के लिए) 2 पासवर्ड}one{(<ph name="DOMAIN_LIST" /> के लिए) # पासवर्ड}other{(<ph name="DOMAIN_LIST" /> के लिए) # पासवर्ड}}</translation>
 <translation id="2666117266261740852">दूसरे टैब या ऐप्लिकेशन बंद करें</translation>
 <translation id="2674170444375937751">क्या आप वाकई अपने इतिहास से इन पेजों को मिटाना चाहते हैं?</translation>
@@ -344,6 +371,7 @@
 <translation id="2713444072780614174">सफ़ेद</translation>
 <translation id="2720342946869265578">आस-पास</translation>
 <translation id="2721148159707890343">अनुरोध कामयाब रहा</translation>
+<translation id="272451190272506600">पैसे चुकाने के लिए सेंसर को छूएं</translation>
 <translation id="2728127805433021124">सर्वर का प्रमाणपत्र कमज़ोर एल्गोरिद्म का उपयोग करके हस्ताक्षरित किया गया है.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />नेटवर्क कनेक्टिविटी चलाकर देखें<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">इन सुविधाओं को चालू करके, आप ब्राउज़र डेटा खो सकते हैं या आपकी सुरक्षा या निजता से समझौता हो सकता है. चालू की गई सुविधाएं इस ब्राउज़र के सभी उपयोगकर्ताओं पर लागू होती हैं.</translation>
@@ -367,8 +395,10 @@
 <translation id="2847118875340931228">गुप्त विंडो खोलें</translation>
 <translation id="2850739647070081192">न्योता (एन्वेलप)</translation>
 <translation id="2856444702002559011">हो सकता है कि हमलावर <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> से आपकी जानकारी (जैसे- पासवर्ड, मैसेज या क्रेडिट कार्ड वगैरह) चुराने की कोशिश कर रहे हों. <ph name="BEGIN_LEARN_MORE_LINK" />ज़्यादा जानें<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">पोस्टर फ़ोल्ड</translation>
 <translation id="2878424575911748999">ए1</translation>
 <translation id="2881276955470682203">कार्ड सेव करें?</translation>
+<translation id="2882949212241984732">डबल-गेट फ़ोल्ड</translation>
 <translation id="2903493209154104877">पते</translation>
 <translation id="290376772003165898">क्या पेज <ph name="LANGUAGE" /> भाषा में नहीं है?</translation>
 <translation id="2909946352844186028">नेटवर्क में बदलाव का पता चला.</translation>
@@ -378,6 +408,7 @@
 <translation id="2925673989565098301">डिलीवरी का तरीका</translation>
 <translation id="2928905813689894207">बिलिंग पता</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> अन्य}one{<ph name="SHIPPING_ADDRESS_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> अन्य}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> और <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> अन्य}}</translation>
+<translation id="2930577230479659665">हर कॉपी के बाद ट्रिम करें</translation>
 <translation id="2934466151127459956">सरकारी-पत्र</translation>
 <translation id="2941952326391522266">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाणपत्र <ph name="DOMAIN2" /> की ओर से है. ऐसा गलत कॉन्फ़िगरेशन के कारण या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
 <translation id="2948083400971632585">आप किसी कनेक्शन के लिए कॉन्फ़िगर की गई किसी भी प्रॉक्सी को सेटिंग पेज से बंद कर सकते हैं.</translation>
@@ -391,6 +422,7 @@
 <translation id="2985398929374701810">मान्य पता डालें</translation>
 <translation id="2986368408720340940">पिकअप का यह तरीका उपलब्ध नहीं है. कोई दूसरा तरीका आज़माएं.</translation>
 <translation id="2987034854559945715">कोई मिलते-जुलते फ़ीचर नहीं</translation>
+<translation id="2989742184762224133">सबसे ऊपर ड्युएल स्टेपल</translation>
 <translation id="2991174974383378012">वेबसाइटों के साथ साझाकरण</translation>
 <translation id="2991571918955627853">आप इस समय <ph name="SITE" /> पर नहीं जा सकते क्योंकि वेबसाइट एचएसटीएस का उपयोग करती है. नेटवर्क की गड़बड़ियां और हमले आमतौर पर कुछ समय के लिए होते हैं इसलिए यह पेज शायद बाद में ठीक से काम करेगा.</translation>
 <translation id="3005723025932146533">सहेजी गई कॉपी दिखाएं</translation>
@@ -409,6 +441,7 @@
 <translation id="3096100844101284527">पिकअप का पता जोड़ें</translation>
 <translation id="3105172416063519923">एसेट आईडी:</translation>
 <translation id="3109728660330352905">आपके पास इस पेज को देखने की अनुमति नहीं है.</translation>
+<translation id="3116158981186517402">लेमिनेट</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />कनेक्टिविटी निदान चलाकर देखें<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{कोई नहीं}=1{एक खाते का साइन-इन डेटा}one{# खातों का साइन-इन डेटा}other{# खातों का साइन-इन डेटा}}</translation>
@@ -423,6 +456,7 @@
 <translation id="3176929007561373547">यह पक्का करने के लिए कि प्रॉक्सी सर्वर काम कर रहा है,
       अपनी प्रॉक्सी सेटिंग जांचें या अपने नेटवर्क एडमिन से संपर्क करें. अगर आपको नहीं लगता       कि आपको किसी प्रॉक्सी सर्वर का उपयोग करना चाहिए:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">खाते में बाकी बैलेंस</translation>
 <translation id="3195213714973468956"><ph name="SERVER_NAME" /> पर <ph name="PRINTER_NAME" /></translation>
 <translation id="320323717674993345">भुगतान रद्द करें</translation>
 <translation id="3207960819495026254">बुकमार्क किया गया</translation>
@@ -493,6 +527,7 @@
 <translation id="358285529439630156">क्रेडिट और प्रीपेड कार्ड स्वीकार किए जाते हैं.</translation>
 <translation id="3582930987043644930">नाम जोड़ें</translation>
 <translation id="3583757800736429874">&amp;ले जाना फिर से करें</translation>
+<translation id="3584299510153766161">नीचे की ओर ड्युएल पंच</translation>
 <translation id="3586931643579894722">विवरण छुपाएं</translation>
 <translation id="3592413004129370115">इटैलियन (एन्वेलप)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -513,6 +548,12 @@
 <translation id="3678529606614285348">पेज को नई गुप्त विंडो में खोलें (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">खराबी रिपोर्ट <ph name="CRASH_TIME" /> पर कैप्चर की गई, <ph name="UPLOAD_TIME" /> पर अपलोड की गई</translation>
 <translation id="3681007416295224113">प्रमाणपत्र जानकारी</translation>
+<translation id="3688109723158850780">आप जिस सर्वर पर जा रहे हैं उसके लिए, <ph name="ORIGIN" />, ने अनुरोध किया है कि
+    उसके सभी अनुरोधों पर मूल नीति लागू की जाए. हालांकि, नीति
+    के मुताबिक काम करने के बजाय, इसने ब्राउज़र को कहीं और रीडायरेक्ट कर दिया है. इस वजह से
+    ब्राउज़र <ph name="SITE" /> के लिए आपके अनुरोध को पूरा नहीं कर पा रहा है. साइट ऑपरेटर,
+    साइट की सुरक्षा और दूसरी प्रॉपर्टी को कॉन्फ़िगर करने के लिए
+    मूल नीतियों का इस्तेमाल कर सकते हैं.</translation>
 <translation id="3701427423622901115">रीसेट स्वीकार किया गया.</translation>
 <translation id="3704162925118123524">आप जिस नेटवर्क का उपयोग कर रहे हैं उसके लिए आपको लॉगिन पेज पर जाने की ज़रूरत हो सकती है.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -545,6 +586,7 @@
 <translation id="382518646247711829">अगर आप प्रॉक्सी सर्वर का उपयोग करते हैं...</translation>
 <translation id="3828924085048779000">खाली 'पासफ़्रेज़' की अनुमति नहीं है.</translation>
 <translation id="3831915413245941253"><ph name="ENROLLMENT_DOMAIN" /> ने और सुविधाओं के लिए एक्सटेंशन इंस्टॉल किया है. एक्सटेंशन आपका कुछ डेटा ऐक्सेस कर सकते हैं.</translation>
+<translation id="3832522519263485449">बाईं ओर एक से ज़्यादा पंच</translation>
 <translation id="385051799172605136">वापस</translation>
 <translation id="3858027520442213535">तारीख और समय अपडेट करें</translation>
 <translation id="3884278016824448484">विरोधाभासी डिवाइस पहचानकर्ता</translation>
@@ -566,6 +608,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> को ब्लॉक किया गया है</translation>
 <translation id="3981540111851280311"><ph name="ENROLLMENT_DOMAIN" /> ने आपके ब्राउज़र पर Chrome Enterprise की खतरे से बचाने की सुविधा चालू की है. Chrome Enterprise की खतरे से बचाने की सुविधा आपका कुछ डेटा ऐक्सेस कर सकती है.</translation>
 <translation id="3987940399970879459">एक एमबी से कम</translation>
+<translation id="3990250421422698716">जोग ऑफ़सेट</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{आस-पास 1 वेब पेज है}one{आस-पास # वेब पेज हैं}other{आस-पास # वेब पेज हैं}}</translation>
 <translation id="4030383055268325496">&amp;जोड़ना वापस लाएं</translation>
 <translation id="4032320456957708163">आपके ब्राउज़र को <ph name="ENROLLMENT_DOMAIN" /> प्रबंधित करता है</translation>
@@ -586,6 +629,7 @@
 <translation id="4112140312785995938">पीछे जाएं</translation>
 <translation id="4116663294526079822">इस साइट पर हमेशा अनुमति दें</translation>
 <translation id="4117700440116928470">नीति क्षेत्र समर्थित नहीं है.</translation>
+<translation id="4123572138124678573">नीचे की ओर ट्रिपल पंच</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 अन्य}one{# अन्‍य}other{# अन्‍य}}</translation>
 <translation id="4130226655945681476">नेटवर्क केबल, मोडेम और राउटर की जाँच करें</translation>
 <translation id="413544239732274901">ज़्यादा जानें</translation>
@@ -622,6 +666,7 @@
     &lt;h4&gt;पांचवा चरण: ज़्यादा मदद पाएं&lt;/h4&gt;
     &lt;p&gt;अगर आपको अब भी गड़बड़ी दिखाई दे रही है, तो वेबसाइट के मालिक से संपर्क करें.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />नेटवर्क निदान चलाकर देखें<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" /><ph name="SITE" /> पर जाएं<ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">मान्य</translation>
 <translation id="4250431568374086873">इस साइट से आपका कनेक्शन पूरी तरह से सुरक्षित नहीं है</translation>
 <translation id="4250680216510889253">नहीं</translation>
@@ -635,6 +680,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{यह कार्ड आपके Google खाते में सेव कर लिया गया है}one{ये कार्ड आपके Google खाते में सेव कर लिए गए हैं}other{ये कार्ड आपके Google खाते में सेव कर लिए गए हैं}}</translation>
 <translation id="428847186335018806">Chrome में डाउनलोड या अपलोड किए जाने वाली फ़ाइलों को स्कैन करें.</translation>
 <translation id="42981349822642051">विस्तृत करें</translation>
+<translation id="4300675098767811073">एक से ज़्यादा पंच राइट</translation>
 <translation id="4302965934281694568">शू3 (एन्वेलप)</translation>
 <translation id="4305817255990598646">बदलें</translation>
 <translation id="4312613361423056926">बी2</translation>
@@ -649,6 +695,7 @@
 <translation id="4356973930735388585">इस साइट पर मौजूद हमलावर आपके कंप्यूटर पर ऐसे खतरनाक प्रोग्राम इंस्टॉल करने की कोशिश कर सकते हैं जो आपकी जानकारी (उदाहरण के लिए, फ़ोटो, पासवर्ड, संदेश और क्रेडिट कार्ड) चुरा लेते हैं या उसे मिटा देते हैं.</translation>
 <translation id="4358461427845829800">भुगतान विधियां प्रबंधित करें...</translation>
 <translation id="4367563149485757821">संख्या-12 (एन्वेलप)</translation>
+<translation id="437058704415269440">खाते में बाकी बैलेंस</translation>
 <translation id="4372516964750095882">फ़ैनफ़ोल्ड-यूएस</translation>
 <translation id="4372948949327679948">अपेक्षित <ph name="VALUE_TYPE" /> मान.</translation>
 <translation id="4377125064752653719">आपने <ph name="DOMAIN" /> तक पहुंचने की कोशिश की, लेकिन सर्वर से मिले प्रमाणपत्र को उसके जारीकर्ता ने रद्द कर दिया है. इसका मतलब है कि सर्वर से मिली सुरक्षा प्रमाणिकता पर पूरी तरह भरोसा नहीं करना चाहिए. हो सकता है कि आप किसी हमलावर से बातचीत कर रहे हों.</translation>
@@ -690,8 +737,11 @@
 <translation id="4594403342090139922">मिटाना &amp;पहले जैसा करें</translation>
 <translation id="4597348597567598915">आकार 8</translation>
 <translation id="4600854749408232102">सी6/सी5 (एन्वेलप)</translation>
+<translation id="4635654612248442824">साइट <ph name="ORIGIN" /> ने यह अनुरोध किया है कि इसके सभी अनुरोधों पर
+    मूल नीति लागू होगी. साथ ही, इस नीति के मुताबिक यह साइट फ़िलहाल असुरक्षित है.</translation>
 <translation id="464342062220857295">खोज सुविधाएं</translation>
 <translation id="4646534391647090355">मुझे अभी वहां ले जाएं</translation>
+<translation id="4658638640878098064">सबसे ऊपर बाईं ओर स्टेपल</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" /> है; इसके सुरक्षा प्रमाणपत्र में त्रुटियां हैं. ऐसा गलत कॉन्फ़िगरेशन के कारण या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
 <translation id="467809019005607715">Google स्लाइड</translation>
@@ -713,6 +763,7 @@
 <translation id="4756388243121344051">&amp;इतिहास</translation>
 <translation id="4758311279753947758">संपर्क जानकारी जोड़ें</translation>
 <translation id="4764776831041365478"><ph name="URL" /> पर मौजूद वेबपेज संभवतः अस्थायी रूप से बंद है या उसे स्थायी रूप से किसी नए वेब पते पर ले जाया गया है.</translation>
+<translation id="4766713847338118463">नीचे की ओर ड्युएल स्टेपल</translation>
 <translation id="4771973620359291008">अज्ञात गड़बड़ी आई.</translation>
 <translation id="4780900888022378816">आपके डिवाइस का प्रबंधन <ph name="ENROLLMENT_DOMAIN" /> करता है और खाते का प्रबंधन <ph name="ACCOUNT_DOMAIN" /> करता हैै.</translation>
 <translation id="4785689107224900852">इस टैब पर जाएं</translation>
@@ -735,6 +786,7 @@
 <translation id="4880827082731008257">खोज इतिहास</translation>
 <translation id="4881695831933465202">खोलें</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">सबसे ऊपर बाईं ओर पंच</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{1 और वेब पेज}one{# और वेब पेज}other{# और वेब पेज}}</translation>
 <translation id="4923417429809017348">इस पेज का एक अज्ञात भाषा से <ph name="LANGUAGE_LANGUAGE" /> में अनुवाद किया गया है</translation>
 <translation id="4923459931733593730">भुगतान</translation>
@@ -746,6 +798,7 @@
 <translation id="495170559598752135">क्रियाएं</translation>
 <translation id="4955242332710481440">ए5-एक्स्ट्रा</translation>
 <translation id="4958444002117714549">पूरी सूची दिखाएं</translation>
+<translation id="4973922308112707173">सबसे ऊपर ड्युएल पंच</translation>
 <translation id="4974590756084640048">चेतावनियां फिर से चालू करें</translation>
 <translation id="4984339528288761049">पीआरसी5 (एन्वेलप)</translation>
 <translation id="4989163558385430922">सभी देखें</translation>
@@ -773,6 +826,7 @@
 <translation id="5087286274860437796">सर्वर का प्रमाण पत्र इस समय मान्य नहीं है.</translation>
 <translation id="5087580092889165836">कार्ड जोड़ें</translation>
 <translation id="5089810972385038852">राज्य</translation>
+<translation id="5093232627742069661">ज़ी-फ़ोल्ड</translation>
 <translation id="5094747076828555589">यह सर्वर यह नहीं प्रमाणित कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाणपत्र Chromium द्वारा विश्वसनीय नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
 <translation id="5095208057601539847">प्रांत</translation>
 <translation id="5097099694988056070">डिवाइस के आंकड़े जैसे कि सीपीयू (CPU)/RAM का इस्तेमाल</translation>
@@ -809,6 +863,9 @@
 <translation id="5251803541071282808">क्लाउड</translation>
 <translation id="5252000469029418751">सी7 (एन्वेलप)</translation>
 <translation id="5254958791078852567">ई1</translation>
+<translation id="5261548214279761072">भुगतान पूरा हुआ</translation>
+<translation id="5266128565379329178">सबसे ऊपर बाइंड</translation>
+<translation id="5269225904387178860">नीचे की ओर क्वाड पंच</translation>
 <translation id="5269999699920406580">सिस्टम से जुड़ी हुई सुविधाओं को सिर्फ़ मालिक ही सेट कर सकता है: <ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">चेतावनी: इस नीति को PolicyDictionaryMultipleSourceMergeList नीति में बताए अनुसार नहीं मिलाया जा सकता, क्योंकि यह शब्दकोश की उन नीतियों का हिस्सा नहीं है जिन्हें मिलाया जा सकता है.</translation>
 <translation id="5283044957620376778">बी1</translation>
@@ -821,6 +878,7 @@
 <translation id="5300589172476337783">दिखाएं</translation>
 <translation id="5308380583665731573">कनेक्ट करें</translation>
 <translation id="5308689395849655368">खराबी रिपोर्ट बंद कर दिया गया है.</translation>
+<translation id="5314967030527622926">बूकलेट मेकर</translation>
 <translation id="5317780077021120954">सेव करें</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" /> में से <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">संपर्क जानकारी चुनें</translation>
@@ -836,6 +894,7 @@
 <translation id="5384855140246857529">सभी डिवाइस पर अपने कार्ड का इस्तेमाल करने के लिए, साइन इन करें और 'सिंक करें' चालू करें.</translation>
 <translation id="5386426401304769735">इस साइट की प्रमाणपत्र शृंखला में, SHA-1 का उपयोग करके हस्ताक्षर किया गया प्रमाणपत्र शामिल है.</translation>
 <translation id="538659543871111977">ए4-टैब</translation>
+<translation id="5396631636586785122">दाईं ओर Edge स्टिच</translation>
 <translation id="540969355065856584">यह सर्वर यह प्रमाणित नहीं कर सका कि यह <ph name="DOMAIN" /> है; इसका सुरक्षा प्रमाण पत्र इस समय मान्य नहीं है. ऐसा गलत कॉन्फ़िगरेशन या किसी आक्रमणकर्ता द्वारा आपके कनेक्शन में अवरोध डालने के कारण हो सकता है.</translation>
 <translation id="5421136146218899937">ब्राउज़िंग डेटा साफ़ करें...</translation>
 <translation id="5430298929874300616">बुकमार्क निकालें</translation>
@@ -860,6 +919,7 @@
 <translation id="5510766032865166053">हो सकता है कि उसे ले जाया गया हो या हटा दिया गया हो.</translation>
 <translation id="5523118979700054094">नीति का नाम</translation>
 <translation id="552553974213252141">क्या लेख सही तरीके से निकाला गया था?</translation>
+<translation id="55293785478302737">Edge स्टिच</translation>
 <translation id="553484882784876924">पीआरसी6 (एन्वेलप)</translation>
 <translation id="5540224163453853">अनुरोध किया गया लेख नहीं ढूंढा जा सका.</translation>
 <translation id="5541546772353173584">ईमेल जोड़ें</translation>
@@ -928,6 +988,7 @@
 <translation id="5893752035575986141">क्रेडिट कार्ड स्वीकार किए जाते हैं.</translation>
 <translation id="5895138241574237353">फिर से प्रारंभ करें</translation>
 <translation id="5901630391730855834">पीला</translation>
+<translation id="5905445707201418379"><ph name="ORIGIN" /> की मूल नीति के मुताबिक रोक लगाई गई.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (सिंक किया गया)</translation>
 <translation id="5916664084637901428">चालू</translation>
 <translation id="59174027418879706">चालू किया गया</translation>
@@ -946,6 +1007,7 @@
 <translation id="598637245381783098">भुगतान ऐप्लिकेशन नहीं खुल सका</translation>
 <translation id="5989320800837274978">न तो कोई फ़िक्‍स्‍ड प्रॉक्‍सी सर्वर और न ही कोई .pac स्क्रिप्ट URL साफ़ तौर पर बताया गया है.</translation>
 <translation id="5990559369517809815">सर्वर से किए गए अनुरोधों को एक्‍सटेंशन द्वारा ब्लॉक कर दिया गया है.</translation>
+<translation id="5992691462791905444">इंजीनियरिंग ज़ी-फ़ोल्ड</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' के लिए <ph name="RESULT_COUNT" /> नतीजे मिले हैं</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">वर्ष</translation>
@@ -954,8 +1016,11 @@
 <translation id="6017850046339264347"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> पर मौजूद हमलावर ऐसे भ्रामक ऐप्लिकेशन इंस्टॉल कर सकते हैं जो कुछ और होने का दावा करते हैं या ऐसा डेटा एकत्रित करते हैं जिसका उपयोग आप पर नज़र रखने के लिए किया जा सके. <ph name="BEGIN_LEARN_MORE_LINK" />ज़्यादा जानें<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (सिंक किए गए)</translation>
 <translation id="6027201098523975773">नाम डालें</translation>
+<translation id="603068602130820122">दाईं ओर ड्युएल स्टेपल</translation>
+<translation id="6032955021262906325">बाईं ओर बाइंड</translation>
 <translation id="6034000775414344507">हल्का भूरा</translation>
 <translation id="6034283069659657473">10x14 (एन्वेलप)</translation>
+<translation id="6034514109191629503">एकार्डियन फ़ोल्ड</translation>
 <translation id="6039846035001940113">अगर समस्या बनी रहती है, तो साइट के मालिक से संपर्क करें.</translation>
 <translation id="6040143037577758943">बंद करें</translation>
 <translation id="6044573915096792553">आकार 12</translation>
@@ -966,6 +1031,7 @@
 <translation id="6058977677006700226">क्या आप अपने कार्ड का इस्तेमाल सभी डिवाइस पर करना चाहते हैं?</translation>
 <translation id="6059925163896151826">USB डिवाइस</translation>
 <translation id="6060009363608157444">अमान्य DnsOverHttps मोड.</translation>
+<translation id="6064217302520318294">स्क्रीन लॉक</translation>
 <translation id="6080696365213338172">आपने व्यवस्थापक द्वारा दिए गए प्रमाणपत्र के उपयोग से सामग्री ऐक्सेस की है.   <ph name="DOMAIN" /> को दिया गया डेटा आपके व्यवस्थापक द्वारा बीच में रोका जा सकता है.</translation>
 <translation id="6094273045989040137">एनोटेट करें</translation>
 <translation id="610911394827799129">आपके Google खाते में <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> पर दूसरी तरह के ब्राउज़िंग इतिहास हो सकते हैं</translation>
@@ -973,6 +1039,7 @@
 <translation id="6146055958333702838">सभी केबल जांचें और आपके उपयोग किए जा रहे सभी राउटर, मॉडेम या अन्य नेटवर्क
     डिवाइस को 'फिर चालू करें'.</translation>
 <translation id="614940544461990577">यह आज़माकर देखें:</translation>
+<translation id="6150036310511284407">बाईं ओर ट्रिपल पंच</translation>
 <translation id="6151417162996330722">सर्वर प्रमाणपत्र की मान्‍यता अवधि बहुत लंबी है.</translation>
 <translation id="6157877588268064908">शिपिंग के तरीके और ज़रूरतें देखने केे लिए, कोई पता चुनें</translation>
 <translation id="6165508094623778733">ज़्यादा जानें</translation>
@@ -980,7 +1047,9 @@
 <translation id="6177128806592000436">इस साइट से आपका कनेक्‍शन सुरक्षित नहीं है</translation>
 <translation id="6203231073485539293">अपना इंटरनेट कनेक्शन जांचे</translation>
 <translation id="6218753634732582820">क्रोमियम से पता निकालें?</translation>
+<translation id="622039917539443112">पैरलल फ़ोल्ड</translation>
 <translation id="6221345481584921695">Google सुरक्षित ब्राउज़िंग को <ph name="SITE" /> पर हाल ही में <ph name="BEGIN_LINK" />मैलवेयर का पता चला<ph name="END_LINK" /> है. आमतौर पर सुरक्षित रहने वाली वेबसाइटें कभी-कभी मैलेवयर से संक्रमित हो जाती हैं. नुकसान पहुंचाने वाली सामग्री <ph name="SUBRESOURCE_HOST" /> से आती है, जो कि एक ज्ञात मैलवेयर वितरक है.</translation>
+<translation id="6234122620015464377">हर दस्तावेज़ के बाद ट्रिम करें</translation>
 <translation id="6240447795304464094">Google Pay का लोगो</translation>
 <translation id="6251924700383757765">निजता नीति</translation>
 <translation id="6254436959401408446">यह पेज खोलने के लिए ज़रूरी जगह नहीं है</translation>
@@ -1006,17 +1075,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{कोई पासवर्ड नहीं है}=1{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किया गया) 1 पासवर्ड}=2{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) 2 पासवर्ड}one{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) # पासवर्ड}other{(<ph name="DOMAIN_LIST" /> के लिए, सिंक किए गए) # पासवर्ड}}</translation>
 <translation id="6358450015545214790">इनका क्‍या अर्थ है?</translation>
 <translation id="6361757823711327522">बी7</translation>
+<translation id="6366710531182496394">बाईं ओर ड्युएल स्टेपल</translation>
 <translation id="6377268785556383139">'<ph name="SEARCH_TEXT" />' के लिए एक नतीजा मिला है</translation>
 <translation id="6380497234672085559">ए0</translation>
 <translation id="6383221683286411806">आगे शुल्क लग सकते हैं.</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{1 अन्‍य सुझाव}one{# अन्‍य सुझाव}other{# अन्‍य सुझाव}}</translation>
 <translation id="6387754724289022810">अगली बार तेज़ी से भुगतान करने के लिए, अपने कार्ड और बिलिंग पते को अपने Google खाते में और इस डिवाइस में सेव करें.</translation>
+<translation id="6390200185239044127">ज़ी-फ़ोल्ड हाल्फ़</translation>
 <translation id="6390662030813198813">इंजीनियरिंग-ई</translation>
 <translation id="6401136357288658127">यह नीति हटा दी गई है. आपको इसके बजाय, इस <ph name="NEW_POLICY" /> नीति का इस्तेमाल करना चाहिए.</translation>
 <translation id="6404511346730675251">बुकमार्क में बदलाव करें</translation>
 <translation id="6406765186087300643">सी0 (एन्वेलप)</translation>
 <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> का समाप्ति तारीख और CVC डालें</translation>
 <translation id="6415778972515849510">क्रोमियम से आप अपने Google खाते की सुरक्षा कर सकते हैं और अपना पासवर्ड बदल सकते हैं.</translation>
+<translation id="6427730057873428458">गेट फ़ोल्ड</translation>
 <translation id="6431585503458005759">सेव न करें</translation>
 <translation id="6433490469411711332">संपर्क जानकारी में बदलाव करें</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> ने कनेक्ट करने से मना कर दिया है.</translation>
@@ -1027,6 +1099,7 @@
 <translation id="6446608382365791566">और जानकारी जोड़ें</translation>
 <translation id="6447842834002726250">कुकी</translation>
 <translation id="6451458296329894277">फ़ार्म फिर से जमा करने की दुबारा पूछें</translation>
+<translation id="6457206614190510200">सैडल स्टिच</translation>
 <translation id="6465306955648956876">पासवर्ड प्रबंधित करें...</translation>
 <translation id="647261751007945333">डिवाइस नीतियां</translation>
 <translation id="6476284679642588870">भुगतान के तरीकों को प्रबंधित करें</translation>
@@ -1041,9 +1114,11 @@
 <translation id="6529602333819889595">मिटाना &amp;फिर से करें</translation>
 <translation id="6534179046333460208">जीता-जागता वेब के सुझाव</translation>
 <translation id="6545864417968258051">ब्लूटूथ स्कैन करना</translation>
+<translation id="6547208576736763147">बाईं ओर ड्युएल पंच</translation>
 <translation id="6554795675067793129">आपके खाते का प्रबंधन <ph name="ENROLLMENT_DOMAIN" /> करता हैै.</translation>
 <translation id="6556866813142980365">फिर से करें</translation>
 <translation id="6569060085658103619">आप एक एक्सटेंशन पेज देख रहे हैं</translation>
+<translation id="6573200754375280815">दाईं ओर ड्युएल पंच</translation>
 <translation id="6578796323535178455">सी2 (एन्वेलप)</translation>
 <translation id="6579990219486187401">हल्का गुलाबी रंग</translation>
 <translation id="6583674473685352014">बी6 (एन्वेलप)</translation>
@@ -1062,6 +1137,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{कोई नहीं}=1{1 साइट से (आप अपने Google खाते से साइन आउट नहीं होंगे)}one{# साइटों से (आप अपने Google खाते से साइन आउट नहीं होंगे)}other{# साइटों से (आप अपने Google खाते से साइन आउट नहीं होंगे)}}</translation>
 <translation id="6652101503459149953">Windows Hello का इस्तेमाल करें</translation>
 <translation id="6657585470893396449">पासवर्ड</translation>
+<translation id="6665553082534466207">दाईं ओर ट्रिपल पंच</translation>
 <translation id="6670613747977017428">सुरक्षित जगह पर लौटें.</translation>
 <translation id="6671697161687535275">क्रोमियम से फ़ॉर्म सुझाव निकालें?</translation>
 <translation id="6685834062052613830">प्रस्थान करें और सेटअप पूरा करें</translation>
@@ -1282,6 +1358,7 @@
 <translation id="7764225426217299476">पता जोड़ें</translation>
 <translation id="7770259615151589601">लंबाई वाला फ़ॉर्मैट</translation>
 <translation id="777702478322588152">प्रांत</translation>
+<translation id="7791196057686275387">बाले</translation>
 <translation id="7791543448312431591">जोड़ें</translation>
 <translation id="7800304661137206267">कनेक्शन को <ph name="MAC" /> का इस्तेमाल करके मैसेज की पुष्टि के लिए <ph name="KX" /> के साथ सुरक्षित किया गया है और यह मुख्य एक्सचेंज तकनीक के तौर पर <ph name="CIPHER" /> का इस्तेमाल करता है.</translation>
 <translation id="7802523362929240268">साइट वैध है</translation>
@@ -1302,22 +1379,27 @@
 <translation id="7882421473871500483">भूरा</translation>
 <translation id="7887683347370398519">अपना कार्ड वेरीफ़िकेशन कोड (सीवीसी) जांचे और फिर से कोशिश करें</translation>
 <translation id="7904208859782148177">सी3 (एन्वेलप)</translation>
+<translation id="7932579305932748336">कोट</translation>
 <translation id="79338296614623784">मान्य फ़ोन नंबर डालें</translation>
+<translation id="7934052535022478634">भुगतान पूरा हुआ</translation>
 <translation id="7935318582918952113">DOM डिस्टिलर</translation>
 <translation id="7937554595067888181"><ph name="EXPIRATION_DATE_ABBR" /> को खत्म होने वाला है</translation>
 <translation id="7938958445268990899">सर्वर का प्रमाणपत्र अभी तक मान्य नहीं है.</translation>
 <translation id="7942349550061667556">लाल</translation>
 <translation id="7947285636476623132">अपने क्रेडिट कार्ड की समय सीमा खत्म होने का साल जांचें और फिर से कोशिश करें</translation>
 <translation id="7951415247503192394">(32-बिट)</translation>
+<translation id="7953569069500808819">सबसे ऊपर Edge स्टिच</translation>
 <translation id="7956713633345437162">मोबाइल बुकमार्क</translation>
 <translation id="7961015016161918242">कभी नहीं</translation>
 <translation id="7977894662897852582">ईडीपी</translation>
+<translation id="799149739215780103">बाइंड</translation>
 <translation id="7995512525968007366">बताया नहीं गया है</translation>
 <translation id="800218591365569300">जगह खाली करने के लिए दूसरे टैब या प्रोग्राम बंद करके देखें.</translation>
 <translation id="8004582292198964060">ब्राउज़र</translation>
 <translation id="8009225694047762179">पासवर्ड संभालें</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{इस कार्ड और इसके बिलिंग पते को सेव किया जाएगा. <ph name="USER_EMAIL" /> में साइन इन रहने पर आप इसका इस्तेमाल कर पाएंगे.}one{ये कार्ड और इनके बिलिंग पते सेव किए जाएंगे. <ph name="USER_EMAIL" /> में साइन इन रहने पर आप उनका इस्तेमाल कर पाएंगे.}other{ये कार्ड और इनके बिलिंग पते सेव किए जाएंगे. <ph name="USER_EMAIL" /> में साइन इन रहने पर आप उनका इस्तेमाल कर पाएंगे.}}</translation>
 <translation id="8025119109950072390">इस साइट पर मौजूद हमलावर आपको धोखा देकर आपसे कुछ जोखिम वाला काम करा सकते हैं, जैसे सॉफ़्टवेयर इंस्टॉल करना या आपकी व्यक्तिगत जानकारी (उदाहरण के लिए, पासवर्ड, फ़ोन नंबर या क्रेडिट कार्ड) के बारे में बताना.</translation>
+<translation id="8028960012888758725">जॉब के बाद ट्रिम करें</translation>
 <translation id="8034522405403831421">यह पेज <ph name="SOURCE_LANGUAGE" /> में है. इसका <ph name="TARGET_LANGUAGE" /> में अनुवाद करें?</translation>
 <translation id="8035152190676905274">पेन</translation>
 <translation id="8037117624646282037">हाल ही में डिवाइस किसने इस्तेमाल किया है</translation>
@@ -1332,6 +1414,7 @@
 <translation id="8074253406171541171">10x13 (एन्वेलप)</translation>
 <translation id="8078141288243656252">घुमाने पर एनोटेट नहीं कर सकते</translation>
 <translation id="8079031581361219619">साइट को फिर लोड करें?</translation>
+<translation id="8086971161893892807">ड्राफ़्ट</translation>
 <translation id="8088680233425245692">लेख देखा नहीं जा सका.</translation>
 <translation id="808894953321890993">पासवर्ड बदलें</translation>
 <translation id="8090403583893450254">आकार 20</translation>
@@ -1347,6 +1430,7 @@
 <translation id="8131740175452115882">दुबारा पूछें</translation>
 <translation id="8149426793427495338">आपका कंप्यूटर निष्क्रिय हो गया है.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> पर मौजूद फ़ाइल पढ़ने के लायक नहीं है.  हो सकता है कि इसे हटा दिया गया हो, कहीं ले जाया गया हो, या फ़ाइल की अनुमतियां एक्सेस को रोक रही हों.</translation>
+<translation id="8163866351304776260">बाईं ओर क्वाड पंच</translation>
 <translation id="8175796834047840627">आपके साइन इन किए होने की वजह से Chrome आपको Google खाते में कार्ड सेव करने की सुविधा देता है. आप सेटिंग में जाकर इसे बदल सकते हैं.</translation>
 <translation id="8184538546369750125">वैश्विक डिफ़ॉल्ट का उपयोग करें (अनुमति दें)</translation>
 <translation id="8194797478851900357">&amp;ले जाना वापस लाएं</translation>
@@ -1369,6 +1453,7 @@
 <translation id="8253091569723639551">बिलिंग पता आवश्यक</translation>
 <translation id="825929999321470778">सेव किए गए सभी पासवर्ड दिखाएं</translation>
 <translation id="8261506727792406068">मिटाएं</translation>
+<translation id="8262952874573525464">नीचे की ओर Edge स्टिच</translation>
 <translation id="8267698848189296333"><ph name="USERNAME" /> के रूप में प्रवेश करना</translation>
 <translation id="8281084378435768645">बड़े आकार वाली फ़ोटो</translation>
 <translation id="8286036467436129157">साइन इन करें</translation>
@@ -1377,6 +1462,7 @@
 <translation id="8293206222192510085">बुकमार्क जोड़ें</translation>
 <translation id="8294431847097064396">स्रोत</translation>
 <translation id="8298115750975731693">आप जिस वाई-फ़ाई का उपयोग कर रहे हैं (<ph name="WIFI_NAME" />) उसके लिए आपको <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> पर जाने की ज़रूरत हो सकती है.</translation>
+<translation id="830498451218851433">फ़ोल्ड हाल्फ़</translation>
 <translation id="8307358339886459768">छोटे आकार वाली फ़ोटो</translation>
 <translation id="8308427013383895095">नेटवर्क कनेक्शन में कोई समस्या होने के कारण अनुवाद विफल हुआ.</translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> का एक्सेस देने से मना किया गया था</translation>
@@ -1405,6 +1491,7 @@
 <translation id="8461694314515752532">सिंक किए गए डेटा को अपने खुद के सिंक लंबे पासवर्ड से सुरक्षित करें</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 क्रेडिट कार्ड}one{# क्रेडिट कार्ड}other{# क्रेडिट कार्ड}}</translation>
 <translation id="8473863474539038330">पते वगैरह</translation>
+<translation id="8479754468255770962">नीचे बाईं ओर स्टेपल</translation>
 <translation id="8483780878231876732">कार्ड का इस्तेमाल अपने Google खाते से करने के लिए, Chrome में साइन करें</translation>
 <translation id="8488350697529856933">इस पर लागू होती है</translation>
 <translation id="8498891568109133222"><ph name="HOST_NAME" /> को लोड होने में बहुत ज़्यादा समय लगा.</translation>
@@ -1412,6 +1499,7 @@
 <translation id="8503813439785031346">उपयोगकर्ता नाम</translation>
 <translation id="8508648098325802031">सर्च अाइकॉन</translation>
 <translation id="8522552481199248698">Chrome से आप अपने Google खाते की सुरक्षा कर सकते हैं और अपना पासवर्ड बदल सकते हैं.</translation>
+<translation id="8542014550340843547">नीचे की ओर ट्रिपल स्टेपल</translation>
 <translation id="8543181531796978784">आप <ph name="BEGIN_ERROR_LINK" />पहचान संबंधी समस्‍या की रिपोर्ट<ph name="END_ERROR_LINK" /> कर सकते हैं या अगर आप अपनी सुरक्षा संबंधी जोखिमों को समझते हैं तो, <ph name="BEGIN_LINK" />इस असुरक्षित साइट पर जा<ph name="END_LINK" /> सकते हैं.</translation>
 <translation id="8553075262323480129">अनुवाद विफल हो गया क्योंकि पेज की भाषा तय नहीं की जा सकी.</translation>
 <translation id="8557066899867184262">कार्ड वेरीफ़िकेशन कोड (सीवीसी) आपके कार्ड के पीछे मौजूद होता है.</translation>
@@ -1434,6 +1522,7 @@
 <translation id="8703575177326907206"><ph name="DOMAIN" /> से आपके कनेक्शन को सुरक्षित नहीं किया गया है.</translation>
 <translation id="8718314106902482036">भुगतान पूरा नहीं हुआ</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, खोज सुझाव</translation>
+<translation id="8719528812645237045">सबसे ऊपर एक से ज़्यादा पंच</translation>
 <translation id="8723954843026426558">मैं नियमों और शर्तों, निजता नीति, और <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> निकाले जाने के अधिकार से सहमत हूं</translation>
 <translation id="8725066075913043281">फिर से कोशिश करें</translation>
 <translation id="8728672262656704056">आप गुप्त मोड में चले गए हैं</translation>
@@ -1452,6 +1541,7 @@
 <translation id="8792621596287649091">आपके <ph name="ORG_NAME" /> खाते का एक्सेस खो सकता है या आपकी पहचान चोरी हो सकती है. क्रोमियम आपको अभी अपना पासवर्ड बदलने का सुझाव देता है.</translation>
 <translation id="8800988563907321413">आपके आस-पास के सुझाव यहां दिखाई देंगे</translation>
 <translation id="8805819170075074995">सूची एंट्री "<ph name="LANGUAGE_ID" />": एंट्री को अनदेखा किया गया क्योंकि इसे SpellcheckLanguage नीति में भी शामिल किया गया है.</translation>
+<translation id="8807160976559152894">हर एक पेज के बाद ट्रिम करें</translation>
 <translation id="8820817407110198400">बुकमार्क</translation>
 <translation id="883848425547221593">अन्य बुकमार्क</translation>
 <translation id="884264119367021077">शिपिंग पता</translation>
@@ -1459,6 +1549,7 @@
 <translation id="885730110891505394">Google के साथ शेयर करना</translation>
 <translation id="8858065207712248076">अगर आपने अपने <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> पासवर्ड का दूसरी साइटों पर दोबारा इस्तेमाल किया है, तो Chrome आपको उसे रीसेट करने का सुझाव देता है.</translation>
 <translation id="8866481888320382733">नीति सेटिंग पार्स करने में गड़बड़ी</translation>
+<translation id="8866928039507595380">फ़ोल्ड</translation>
 <translation id="886872106311861689">बी3</translation>
 <translation id="8870413625673593573">हाल ही में बंद किए गए</translation>
 <translation id="8874824191258364635">मान्य कार्ड संख्या डालें</translation>
@@ -1466,6 +1557,7 @@
 <translation id="8903921497873541725">ज़ूम इन करें</translation>
 <translation id="890485472659500557">इंजीनियरिंग-सी</translation>
 <translation id="8912362522468806198">Google खाता</translation>
+<translation id="892588693504540538">सबसे ऊपर दाईं ओर पंच</translation>
 <translation id="8931333241327730545">क्या आप इस कार्ड को अपने Google खाते में सेव करना चाहते हैं?</translation>
 <translation id="8932102934695377596">आपकी घड़ी पीछे है</translation>
 <translation id="893332455753468063">नाम जोड़ें</translation>
@@ -1527,6 +1619,7 @@
 <translation id="9174917557437862841">टैब बदलने का बटन, इस टैब पर स्विच करने के लिए Enter दबाएं</translation>
 <translation id="9183302530794969518">Google दस्तावेज़</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> एक असमर्थित प्रोटोकॉल का उपयोग करता है.</translation>
+<translation id="9191834167571392248">नीचे बाईं ओर पंच</translation>
 <translation id="9205078245616868884">आपका डेटा आपके सिंक पासफ़्रेज़ से सुरक्षित किया गया है. सिंक शुरू करने के लिए इसे डालें.</translation>
 <translation id="9207861905230894330">लेख जोड़ने में विफल रहा.</translation>
 <translation id="9215416866750762878">एक ऐप्‍लिकेशन Chrome को इस साइट से सुरक्षित तरीके से कनेक्‍ट होने से रोक रहा है</translation>
@@ -1537,7 +1630,9 @@
 <translation id="936602727769022409">आप अपने Google खाते का ऐक्सेस खो सकते हैं. क्रोमियम आपको इसी समय अपना पासवर्ड बदलने का सुझाव देता है. आपको साइन इन करने को कहा जाएगा.</translation>
 <translation id="939736085109172342">नया फ़ोल्डर</translation>
 <translation id="945855313015696284">नीचे दी गई जानकारी देखें और सभी गलत कार्ड मिटाएं</translation>
+<translation id="950736567201356821">सबसे ऊपर ट्रिपल पंच</translation>
 <translation id="951104842009476243">स्वीकार किए जाने वाले डेबिट और प्रीपेड कार्ड</translation>
+<translation id="961663415146723894">नीचे की ओर बाइंड</translation>
 <translation id="962484866189421427">यह सामग्री ऐसे धोखा देने वाले ऐप्लिकेशन इंस्टॉल कर सकती है जो कुछ और होने का दावा करते हैं या ऐसा डेटा इकट्ठा करते हैं जिसका इस्तेमाल आप पर नज़र रखने के लिए किया जा सके. <ph name="BEGIN_LINK" />फिर भी दिखाएं<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">आधिकारिक बिल्ड</translation>
 <translation id="973773823069644502">डिलीवरी का पता जोड़ें</translation>
diff --git a/components/strings/components_strings_hr.xtb b/components/strings/components_strings_hr.xtb
index db6430a..01e97515 100644
--- a/components/strings/components_strings_hr.xtb
+++ b/components/strings/components_strings_hr.xtb
@@ -1034,6 +1034,7 @@
 <translation id="6058977677006700226">Želite li plaćati svojim karticama na svim svojim uređajima?</translation>
 <translation id="6059925163896151826">USB uređaji</translation>
 <translation id="6060009363608157444">Način DnsOverHttps nije važeći.</translation>
+<translation id="6064217302520318294">Zaključavanje zaslona</translation>
 <translation id="6080696365213338172">Pristupili ste sadržaju pomoću certifikata koji je izdao administrator. Administrator može presresti podatke koje dostavljate domeni <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Dodaj bilješku</translation>
 <translation id="610911394827799129">Na vašem Google računu možda postoje drugi oblici povijesti pregledavanja na stranici <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_hu.xtb b/components/strings/components_strings_hu.xtb
index 8944f78..91ae0a4 100644
--- a/components/strings/components_strings_hu.xtb
+++ b/components/strings/components_strings_hu.xtb
@@ -210,7 +210,7 @@
 <translation id="1927235823738766038">Elfogadott hitel- és bankkártyák</translation>
 <translation id="194030505837763158">Ugrás ide: <ph name="LINK" /></translation>
 <translation id="1945968466830820669">Elveszítheti a hozzáférést szervezete fiókjához, vagy visszaélhetnek személyes adataival. A Chromium azt javasolja, hogy azonnal módosítsa jelszavát.</translation>
-<translation id="1947454675006758438">Kapocs jobb felül</translation>
+<translation id="1947454675006758438">Kapocs jobbra fent</translation>
 <translation id="1948773908305951926">Elfogadott feltöltőkártyák</translation>
 <translation id="1962204205936693436">A(z) <ph name="DOMAIN" /> könyvjelzői</translation>
 <translation id="1973335181906896915">Szerializálási hiba</translation>
@@ -242,7 +242,7 @@
 <translation id="2113977810652731515">Kártya</translation>
 <translation id="2114841414352855701">A rendszer figyelmen kívül hagyja, mivel a(z) <ph name="POLICY_NAME" /> felülírta.</translation>
 <translation id="2119505898009119320">Tulajdonos: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
-<translation id="2119867082804433120">Lyuk jobb alul</translation>
+<translation id="2119867082804433120">Lyuk jobbra lent</translation>
 <translation id="2129079103035905234">Mozgásérzékelők</translation>
 <translation id="213826338245044447">Mobilos könyvjelzők</translation>
 <translation id="214556005048008348">Fizetés visszavonása</translation>
@@ -325,7 +325,7 @@
 <translation id="2505268675989099013">Fiók védelme</translation>
 <translation id="2515335152965840738">MELLŐZÉS</translation>
 <translation id="2515629240566999685">A térerő ellenőrzése tartózkodási helyén</translation>
-<translation id="2521385132275182522">Kapocs jobb lent</translation>
+<translation id="2521385132275182522">Kapocs jobbra lent</translation>
 <translation id="2523886232349826891">Csak erre az eszközre mentve</translation>
 <translation id="2524461107774643265">További adatok hozzáadása</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{és 1 további}other{és # további}}</translation>
@@ -740,7 +740,7 @@
     alkalmazását kérte az összes kérésére, de ez a házirend jelenleg nem alkalmazható.</translation>
 <translation id="464342062220857295">Funkciók keresése</translation>
 <translation id="4646534391647090355">Megnézem most</translation>
-<translation id="4658638640878098064">Kapocs bal felül</translation>
+<translation id="4658638640878098064">Kapocs balra fent</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">A szerver nem tudta bizonyítani, hogy valóban a(z) <ph name="DOMAIN" /> domainbe tartozik; biztonsági tanúsítványa hibákat tartalmaz. Ennek oka lehet konfigurációs hiba, vagy hogy egy támadó eltérítette az Ön kapcsolódását.</translation>
 <translation id="467809019005607715">Google Diák</translation>
@@ -785,7 +785,7 @@
 <translation id="4880827082731008257">Keresés az előzmények között</translation>
 <translation id="4881695831933465202">Megnyitás</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" /> és <ph name="TYPE_3" /></translation>
-<translation id="4913987521957242411">Lyuk bal felül</translation>
+<translation id="4913987521957242411">Lyuk balra fent</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{és egy további weboldal}other{és # további weboldal}}</translation>
 <translation id="4923417429809017348">Ezt az oldalt lefordították egy ismeretlen nyelvről <ph name="LANGUAGE_LANGUAGE" /> nyelvre</translation>
 <translation id="4923459931733593730">Fizetés</translation>
@@ -1030,6 +1030,7 @@
 <translation id="6058977677006700226">Minden eszközén szeretné használni a kártyákat?</translation>
 <translation id="6059925163896151826">USB-eszközök</translation>
 <translation id="6060009363608157444">Érvénytelen DnsOverHttps-mód.</translation>
+<translation id="6064217302520318294">Képernyőzárolás</translation>
 <translation id="6080696365213338172">A tartalmat egy rendszergazda által biztosított tanúsítványon keresztül érte el. A(z) <ph name="DOMAIN" /> számára megadott adatok a rendszergazda számára is elérhetők.</translation>
 <translation id="6094273045989040137">Jegyzetelés</translation>
 <translation id="610911394827799129">Előfordulhat, hogy a böngészési előzmények más formái még megtalálhatók Google-fiókjában a <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> webhelyen</translation>
@@ -1489,7 +1490,7 @@
 <translation id="8461694314515752532">A szinkronizált adatok titkosítása saját összetett szinkronizálási jelszóval</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 hitelkártya}other{# hitelkártya}}</translation>
 <translation id="8473863474539038330">Címek és egyebek</translation>
-<translation id="8479754468255770962">Kapocs bal alul</translation>
+<translation id="8479754468255770962">Kapocs balra lent</translation>
 <translation id="8483780878231876732">Jelentkezzen be a Chrome-ba, hogy használhassa a kártyákat Google-fiókjából.</translation>
 <translation id="8488350697529856933">A következőre érvényes</translation>
 <translation id="8498891568109133222">A(z) <ph name="HOST_NAME" /> túl hosszú ideje nem válaszol.</translation>
@@ -1555,7 +1556,7 @@
 <translation id="8903921497873541725">Nagyítás</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google Fiókjába</translation>
-<translation id="892588693504540538">Lyuk jobb felül</translation>
+<translation id="892588693504540538">Lyuk jobbra fent</translation>
 <translation id="8931333241327730545">Menti ezt a kártyát a Google-fiókjába?</translation>
 <translation id="8932102934695377596">Késik az órája</translation>
 <translation id="893332455753468063">Név hozzáadása</translation>
@@ -1617,7 +1618,7 @@
 <translation id="9174917557437862841">Lapváltó gomb. Az Enter billentyűvel erre a lapra válthat.</translation>
 <translation id="9183302530794969518">Google Dokumentumok</translation>
 <translation id="9183425211371246419">A(z) <ph name="HOST_NAME" /> egy nem támogatott protokollt használ.</translation>
-<translation id="9191834167571392248">Lyuk bal alul</translation>
+<translation id="9191834167571392248">Lyuk balra lent</translation>
 <translation id="9205078245616868884">Adatai az összetett szinkronizálási jelszavával vannak titkosítva. Adja meg a jelszót a szinkronizálás megkezdéséhez.</translation>
 <translation id="9207861905230894330">A cikk hozzáadása sikertelen.</translation>
 <translation id="9215416866750762878">Valamelyik alkalmazás megakadályozza a Chrome-ot abban, hogy biztonságosan csatlakozzon a webhelyhez</translation>
diff --git a/components/strings/components_strings_id.xtb b/components/strings/components_strings_id.xtb
index fe07984..f2fb275 100644
--- a/components/strings/components_strings_id.xtb
+++ b/components/strings/components_strings_id.xtb
@@ -1034,6 +1034,7 @@
 <translation id="6058977677006700226">Gunakan kartu Anda di semua perangkat?</translation>
 <translation id="6059925163896151826">Perangkat USB</translation>
 <translation id="6060009363608157444">Mode DnsOverHttps tidak valid.</translation>
+<translation id="6064217302520318294">Kunci layar</translation>
 <translation id="6080696365213338172">Anda telah mengakses konten menggunakan sertifikat yang diberikan oleh administrator. Data yang diberikan ke <ph name="DOMAIN" /> dapat dicegat oleh administrator Anda.</translation>
 <translation id="6094273045989040137">Anotasi</translation>
 <translation id="610911394827799129">Akun Google Anda mungkin memiliki bentuk histori penjelajahan lainnya di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_it.xtb b/components/strings/components_strings_it.xtb
index ad4f231..4dde572 100644
--- a/components/strings/components_strings_it.xtb
+++ b/components/strings/components_strings_it.xtb
@@ -1032,6 +1032,7 @@
 <translation id="6058977677006700226">Utilizzare le carte su tutti i tuoi dispositivi?</translation>
 <translation id="6059925163896151826">Dispositivi USB</translation>
 <translation id="6060009363608157444">Modalità DnsOverHttps non valida.</translation>
+<translation id="6064217302520318294">Blocco schermo</translation>
 <translation id="6080696365213338172">Hai raggiunto i contenuti utilizzando un certificato fornito dall'amministratore. I dati che fornisci a <ph name="DOMAIN" /> possono essere intercettati dal tuo amministratore.</translation>
 <translation id="6094273045989040137">Consente di inserire l'annotazione</translation>
 <translation id="610911394827799129">Il tuo Account Google potrebbe avere altre forme di cronologia di navigazione all'indirizzo <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_iw.xtb b/components/strings/components_strings_iw.xtb
index b64d6fc..9bd6641c 100644
--- a/components/strings/components_strings_iw.xtb
+++ b/components/strings/components_strings_iw.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">‏להתחבר מחדש אל ה-Wi-Fi</translation>
 <translation id="1165039591588034296">שגיאה</translation>
 <translation id="1175364870820465910">הדפסה…</translation>
+<translation id="1175875016430184367">3 סיכות הידוק בצד ימין</translation>
 <translation id="1178581264944972037">השהה</translation>
 <translation id="1181037720776840403">הסרה</translation>
 <translation id="1197088940767939838">כתום</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">סריקה לאיתור תוכנות זדוניות</translation>
 <translation id="129863573139666797">‏<ph name="BEGIN_LINK" />נסה לנקות את קובצי ה-Cookie<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">תכונות שהוצאו משימוש</translation>
+<translation id="1314509827145471431">כריכה בקצה הימני</translation>
 <translation id="1320233736580025032">Prc1 (Envelope)‎</translation>
 <translation id="132301787627749051">חיפוש תמונה בלוח</translation>
 <translation id="1323433172918577554">הצגת פריטים נוספים</translation>
 <translation id="132390688737681464">שמירה ומילוי של כתובות</translation>
+<translation id="1330449323196174374">כנף שמאלית בקיפול</translation>
 <translation id="1333989956347591814">הפעילות שלך <ph name="BEGIN_EMPHASIS" />עדיין עשויה להיות מוצגת<ph name="END_EMPHASIS" /> בפני:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />אתרים שאליהם נכנסת
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">מידע על הגרסה</translation>
 <translation id="1376836354785490390">הצגת פחות פריטים</translation>
 <translation id="1377321085342047638">מספר כרטיס</translation>
+<translation id="1380591466760231819">קיפול לאורך ל-3 חלקים</translation>
 <translation id="138218114945450791">כחול בהיר</translation>
 <translation id="1382194467192730611">‏מנהל המערכת שלך אישר את התקן ה-USB</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> לא שלח נתונים.</translation>
 <translation id="1405567553485452995">ירוק בהיר</translation>
 <translation id="1407135791313364759">פתח הכל</translation>
+<translation id="1408787208417187241">3 סיכות הידוק בחלק העליון</translation>
 <translation id="1413809658975081374">שגיאת פרטיות</translation>
 <translation id="1426410128494586442">כן</translation>
 <translation id="1430915738399379752">הדפסה</translation>
+<translation id="1442386063175183758">כנף ימנית בקיפול</translation>
+<translation id="1442987760062738829">ניקוב</translation>
 <translation id="1455413310270022028">כלי מחיקה</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">הצג יותר</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">כרטיסי אשראי וחיוב שהסוחר מקבל</translation>
 <translation id="194030505837763158">עבור ל-<ph name="LINK" /></translation>
 <translation id="1945968466830820669">‏ייתכן שלא יתאפשר לך לגשת לחשבון הארגוני, והזהות שלך עלולה להיגנב. לגלישה בטוחה ב-Chromium, מומלץ לשנות את הסיסמה עכשיו.</translation>
+<translation id="1947454675006758438">סיכת הידוק בפינה הימנית העליונה</translation>
 <translation id="1948773908305951926">כרטיסים משולמים מראש שהסוחר מקבל</translation>
 <translation id="1962204205936693436">סימניות של <ph name="DOMAIN" /></translation>
 <translation id="1973335181906896915">שגיאה בעריכה בסידרה</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">‏ניקוי נתוני היסטוריית הגלישה של Chrome</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{ואפליקציה אחת נוספת}two{ושתי אפליקציות נוספות}many{ו-# אפליקציות נוספות}other{ו-# אפליקציות נוספות}}</translation>
 <translation id="2003709556000175978">צריך לאפס את הסיסמה עכשיו</translation>
+<translation id="2003775180883135320">4 ניקובים בצד שמאל</translation>
 <translation id="2025186561304664664">‏שרת Proxy נקבע למוגדר אוטומטית.</translation>
 <translation id="202813660234680402">לא להוסיף</translation>
 <translation id="2030481566774242610">האם התכוונת ל-<ph name="LINK" />?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">צליל</translation>
 <translation id="2094505752054353250">אי התאמה בדומיינים</translation>
 <translation id="2096368010154057602">מחלקה</translation>
+<translation id="2099652385553570808">3 סיכות הידוק בצד שמאל</translation>
 <translation id="2102134110707549001">הצעת סיסמה חזקה…</translation>
 <translation id="2108755909498034140">אתחול המחשב</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">כרטיס</translation>
 <translation id="2114841414352855701">המערכת התעלמה משום שהמדיניות בוטלה על ידי <ph name="POLICY_NAME" />.</translation>
 <translation id="2119505898009119320">נופק ל: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">ניקוב בפינה הימנית התחתונה</translation>
 <translation id="2129079103035905234">חיישני תנועה</translation>
 <translation id="213826338245044447">סימניות לנייד</translation>
 <translation id="214556005048008348">ביטול תשלום</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">מספר טלפון</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{כתובת אחת}two{שתי כתובות}many{# כתובות}other{# כתובות}}</translation>
 <translation id="2187317261103489799">זהה (ברירת מחדל)</translation>
+<translation id="2188375229972301266">ניקובים מרובים בחלק התחתון</translation>
 <translation id="2202020181578195191">עליך להזין שנת תפוגה חוקית</translation>
 <translation id="2212735316055980242">לא נמצאה מדיניות</translation>
 <translation id="2213606439339815911">מאחזר רשומות...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099">תקן את החיבור באמצעות <ph name="BEGIN_LINK" />אפליקציית הבדיקה<ph name="END_LINK" /></translation>
 <translation id="2239100178324503013">שלח עכשיו</translation>
 <translation id="2248949050832152960">‏שימוש ב-WebAuthn</translation>
+<translation id="2250931979407627383">הידוק קצוות בצד שמאל</translation>
 <translation id="225207911366869382">ערך זה הוצא משימוש עבור מדיניות זו.</translation>
 <translation id="2257315177824333709">מצטערים, אי אפשר לשמור את הכרטיס שלך עכשיו</translation>
 <translation id="2262243747453050782">‏שגיאת HTTP</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">מספר טלפון</translation>
 <translation id="2277103315734023688">הרצה קדימה</translation>
 <translation id="2283340219607151381">שמירה ומילוי של כתובות</translation>
+<translation id="2289385804009217824">חיתוך</translation>
 <translation id="2292556288342944218">הגישה לאינטרנט חסומה</translation>
 <translation id="2297722699537546652">B5 (Envelope)‎</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)‎</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">‏מנהל המערכת יכול לשנות את הגדרת הדפדפן שלך מרחוק. בנוסף, ניתן לנהל את הפעילות במכשיר הזה מחוץ ל-Chrome. <ph name="BEGIN_LINK" />מידע נוסף<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. ייתכן שאישור האבטחה שלו בוטל. הסיבה לכך עשויה להיות הגדרה שגויה או תוקף המיירט את החיבור שלך.</translation>
+<translation id="2438874542388153331">4 ניקובים בצד ימין</translation>
 <translation id="2463193859425327265">שינוי דף הבית</translation>
 <translation id="2463739503403862330">מלא</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">בחירת שיטת מסירה</translation>
+<translation id="2465688316154986572">סיכת הידוק</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />מפעיל את אבחון הרשת<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">תרגם את הדף הזה</translation>
 <translation id="2479410451996844060">כתובת אתר לא חוקית של חיפוש</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">הגנה על החשבון</translation>
 <translation id="2515335152965840738">התעלמות</translation>
 <translation id="2515629240566999685">לבדוק את האות באזור שלך</translation>
+<translation id="2521385132275182522">סיכת הידוק בפינה הימנית התחתונה</translation>
 <translation id="2523886232349826891">הכרטיס יישמר רק במכשיר הזה</translation>
 <translation id="2524461107774643265">הוספת עוד מידע</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{ודומיין אחד נוסף}two{ו-# דומיינים נוספים}many{ו-# דומיינים נוספים}other{ו-# דומיינים נוספים}}</translation>
@@ -326,10 +343,14 @@
 <translation id="2618023639789766142">C10 (Envelope)‎</translation>
 <translation id="2625385379895617796">השעון שלך מקדים</translation>
 <translation id="2634124572758952069">‏לא ניתן היה למצוא את כתובת ה-IP של השרת של <ph name="HOST_NAME" />.</translation>
+<translation id="2638745661847473633">השרת שאליו ביקשת לעבור, <ph name="ORIGIN" />, ביקש להחיל מדיניות מקור על כל הבקשות הנשלחות אליו. עם זאת, עכשיו הוא
+    סיפק מדיניות לא חוקית, מה שמונע מהדפדפן למלא את
+    הבקשה לעבור אל <ph name="SITE" />. מפעילי אתרים יכולים להשתמש במדיניות מקור כדי להגדיר מאפייני אבטחה ומאפיינים אחרים עבור אתר מסוים.</translation>
 <translation id="2639739919103226564">סטטוס:</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">לא ניתן לגשת לקובץ</translation>
 <translation id="2653659639078652383">שלח</translation>
+<translation id="2660650542324841986">השרת שאליו ביקשת לעבור, <ph name="ORIGIN" />, ביקש להחיל מדיניות מקור על כל הבקשות הנשלחות אליו. עם זאת, עכשיו הוא לא הצליח לספק מדיניות, ומצב זה מונע מהדפדפן למלא את הבקשה לעבור אל <ph name="SITE" />. מפעילי אתרים יכולים להשתמש במדיניות מקור כדי להגדיר מאפייני אבטחה ומאפיינים אחרים עבור אתר מסוים.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{אין}=1{סיסמה אחת (עבור <ph name="DOMAIN_LIST" />)}=2{שתי סיסמאות (עבור <ph name="DOMAIN_LIST" />)}many{# סיסמאות (עבור <ph name="DOMAIN_LIST" />)}other{# סיסמאות (עבור <ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">סגירת כרטיסיות או יישומים אחרים</translation>
 <translation id="2674170444375937751">האם אתה בטוח שברצונך להסיר דפים אלו מההיסטוריה שלך?</translation>
@@ -344,6 +365,7 @@
 <translation id="2713444072780614174">לבן</translation>
 <translation id="2720342946869265578">קרוב</translation>
 <translation id="2721148159707890343">הבקשה בוצעה בהצלחה</translation>
+<translation id="272451190272506600">כדי לשלם, יש לגעת בחיישן</translation>
 <translation id="2728127805433021124">האישור של השרת נחתם באמצעות אלגוריתם של חתימה חלשה.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />מפעיל את אבחון הקישוריות<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">הפעלת התכונות האלה עלולה לגרום לאובדן נתוני גלישה או
@@ -369,8 +391,10 @@
 <translation id="2847118875340931228">פתיחת חלון גלישה בסתר</translation>
 <translation id="2850739647070081192">Invite (Envelope)‎</translation>
 <translation id="2856444702002559011">ייתכן שתוקפים מנסים לגנוב את הפרטים שלך מהאתר <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (לדוגמה, סיסמאות, הודעות או כרטיסי אשראי). <ph name="BEGIN_LEARN_MORE_LINK" />מידע נוסף<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">קיפול כרזה</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">לשמור את הכרטיס?</translation>
+<translation id="2882949212241984732">שתי כנפיים בקיפול</translation>
 <translation id="2903493209154104877">כתובות</translation>
 <translation id="290376772003165898">הדף לא ב<ph name="LANGUAGE" />?</translation>
 <translation id="2909946352844186028">אותר שינוי ברשת.</translation>
@@ -380,6 +404,7 @@
 <translation id="2925673989565098301">שיטת משלוח</translation>
 <translation id="2928905813689894207">כתובת לחיוב</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}two{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}many{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ועוד <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}}</translation>
+<translation id="2930577230479659665">חיתוך אחרי כל עותק</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. אישור האבטחה שלו הוא מ-<ph name="DOMAIN2" />. ייתכן שהסיבה לכך היא תצורה שגויה או תוקף המיירט את החיבור שלך.</translation>
 <translation id="2948083400971632585">‏ניתן להשבית כל שרת proxy המוגדר לחיבור מדף ההגדרות.</translation>
@@ -393,6 +418,7 @@
 <translation id="2985398929374701810">עליך להזין כתובת חוקית</translation>
 <translation id="2986368408720340940">שיטת האיסוף הזו אינה זמינה. עליך לבחור שיטה אחרת.</translation>
 <translation id="2987034854559945715">אין תכונות תואמות</translation>
+<translation id="2989742184762224133">שתי סיכות הידוק בחלק העליון</translation>
 <translation id="2991174974383378012">שיתוף עם אתרים</translation>
 <translation id="2991571918955627853">‏נכון לעכשיו אי אפשר לבקר באתר <ph name="SITE" /> מאחר שנעשה בו שימוש ב-HSTS. שגיאות רשת ומתקפות הן בדרך כלל זמניות, כך שהדף הזה יחזור כנראה לפעול מאוחר יותר.</translation>
 <translation id="3005723025932146533">הצג עותק שמור</translation>
@@ -411,6 +437,7 @@
 <translation id="3096100844101284527">הוספת כתובת לאיסוף</translation>
 <translation id="3105172416063519923">מזהה נכס:</translation>
 <translation id="3109728660330352905">אין לך הרשאה לצפות בדף הזה.</translation>
+<translation id="3116158981186517402">למינציה</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />נסה להפעיל את אבחון הקישוריות<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{ללא}=1{נתוני כניסה של חשבון אחד}two{נתוני כניסה של 2 חשבונות}many{נתוני כניסה של # חשבונות}other{נתוני כניסה של # חשבונות}}</translation>
@@ -426,6 +453,7 @@
    כדי לוודא ששרת ה-proxy פועל.  אם אינך סבור שעליך
    להשתמש בשרת proxy:
    <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">יתרה בחשבון</translation>
 <translation id="3195213714973468956"><ph name="PRINTER_NAME" /> בשרת <ph name="SERVER_NAME" /></translation>
 <translation id="320323717674993345">בטל תשלום</translation>
 <translation id="3207960819495026254">מסומן בסימניה</translation>
@@ -496,6 +524,7 @@
 <translation id="358285529439630156">אפשר לשלם באמצעות כרטיסי אשראי וכרטיסים משולמים מראש.</translation>
 <translation id="3582930987043644930">הוסף שם</translation>
 <translation id="3583757800736429874">&amp;ביצוע מחדש של העברה</translation>
+<translation id="3584299510153766161">שני ניקובים בחלק התחתון</translation>
 <translation id="3586931643579894722">הסתר פרטים</translation>
 <translation id="3592413004129370115">Italian (Envelope)‎</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -516,6 +545,9 @@
 <translation id="3678529606614285348">‏פתח את הדף בחלון חדש של גלישה בסתר (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">דוח קריסה תועד ב-<ph name="CRASH_TIME" />, הועלה ב-<ph name="UPLOAD_TIME" /></translation>
 <translation id="3681007416295224113">פרטי אישור</translation>
+<translation id="3688109723158850780">השרת שאליו ביקשת לעבור, <ph name="ORIGIN" />, ביקש להחיל מדיניות מקור על כל הבקשות הנשלחות אליו. עם זאת, במקום לספק מדיניות הוא הפנה את הדפדפן לכתובת אחרת. מצב זה מונע מהדפדפן למלא את הבקשה לעבור אל <ph name="SITE" />. מפעילי
+    אתרים יכולים להשתמש במדיניות מקור כדי להגדיר מאפייני אבטחה ומאפיינים
+    אחרים עבור אתר מסוים.</translation>
 <translation id="3701427423622901115">האיפוס אושר.</translation>
 <translation id="3704162925118123524">ייתכן שתוצג דרישה להיכנס לדף ההתחברות של הרשת שבה אתה משתמש.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -548,6 +580,7 @@
 <translation id="382518646247711829">‏אם אתה משתמש בשרת Proxy...</translation>
 <translation id="3828924085048779000">אין אפשרות להשתמש במשפט-סיסמה ריק.</translation>
 <translation id="3831915413245941253">הותקנו תוספים מהדומיין <ph name="ENROLLMENT_DOMAIN" /> כדי להשתמש בפונקציות נוספות. לתוספים יש גישה לחלק מהנתונים שלך.</translation>
+<translation id="3832522519263485449">ניקובים מרובים בצד שמאל</translation>
 <translation id="385051799172605136">חזרה</translation>
 <translation id="3858027520442213535">עדכן את התאריך והשעה</translation>
 <translation id="3884278016824448484">מזהה מכשיר מתנגש</translation>
@@ -569,6 +602,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> חסום</translation>
 <translation id="3981540111851280311">‏הכלי להגנה מפני איומים של Chrome Enterprise הופעל על ידי <ph name="ENROLLMENT_DOMAIN" /> בדפדפן שלך. לכלי להגנה מפני איומים של Chrome Enterprise יש גישה לחלק מהנתונים שלך.</translation>
 <translation id="3987940399970879459">‏פחות מ-‎1 MB</translation>
+<translation id="3990250421422698716">היסט הלשונית</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{דף אינטרנט קרוב אחד}two{# דפי אינטרנט קרובים}many{# דפי אינטרנט קרובים}other{# דפי אינטרנט קרובים}}</translation>
 <translation id="4030383055268325496">&amp;ביטול הוספה</translation>
 <translation id="4032320456957708163">הדפדפן שלך מנוהל על ידי <ph name="ENROLLMENT_DOMAIN" /></translation>
@@ -589,6 +623,7 @@
 <translation id="4112140312785995938">הרצה לאחור</translation>
 <translation id="4116663294526079822">אפשר תמיד באתר זה</translation>
 <translation id="4117700440116928470">היקף המדיניות אינו נתמך.</translation>
+<translation id="4123572138124678573">3 ניקובים בחלק התחתון</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{אחד נוסף}two{שניים נוספים}many{# נוספים}other{# נוספים}}</translation>
 <translation id="4130226655945681476">בדוק את כבלי הרשת, את המודם ואת הנתב</translation>
 <translation id="413544239732274901">מידע נוסף</translation>
@@ -625,6 +660,7 @@
     &lt;h4&gt;שלב חמישי: סיוע נוסף&lt;/h4&gt;
     &lt;p&gt;אם השגיאה עדיין מופיעה, יש לפנות לבעלי האתר.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />נסה להפעיל את אבחון הרשת<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />המשך אל <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">תקף</translation>
 <translation id="4250431568374086873">החיבור שלך לאתר הזה לא מאובטח בצורה מלאה</translation>
 <translation id="4250680216510889253">לא</translation>
@@ -638,6 +674,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{‏הכרטיס הזה נשמר בחשבון Google שלך}two{‏הכרטיסים האלה נשמרו בחשבון Google שלך}many{‏הכרטיסים האלה נשמרו בחשבון Google שלך}other{‏הכרטיסים האלה נשמרו בחשבון Google שלך}}</translation>
 <translation id="428847186335018806">‏סריקת קבצים שהורדת או העלית ב-Chrome.</translation>
 <translation id="42981349822642051">הרחבה</translation>
+<translation id="4300675098767811073">ניקובים מרובים בצד ימין</translation>
 <translation id="4302965934281694568">Chou3 (Envelope)‎</translation>
 <translation id="4305817255990598646">מעבר</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -652,6 +689,7 @@
 <translation id="4356973930735388585">תוקפים באתר הזה עשויים לנסות להתקין במחשב שלך תוכניות מסוכנות שגונבות או מוחקות מידע שלך (לדוגמה: תמונות, סיסמאות, הודעות ופרטי כרטיסי אשראי).</translation>
 <translation id="4358461427845829800">ניהול אמצעי תשלום...</translation>
 <translation id="4367563149485757821">Number-12 (Envelope)‎</translation>
+<translation id="437058704415269440">יתרה בחשבון</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">צפוי ערך מסוג <ph name="VALUE_TYPE" />.</translation>
 <translation id="4377125064752653719">ניסית להשיג את <ph name="DOMAIN" />, אך האישור שהשרת הציג בוטל על ידי המנפיק שלו. פירוש הדבר שאין כל אפשרות לתת אמון באישורי האבטחה שהשרת הציג. ייתכן שאתה מתקשר עם תוקף.</translation>
@@ -693,8 +731,11 @@
 <translation id="4594403342090139922">&amp;ביטול מחיקה</translation>
 <translation id="4597348597567598915">גודל 8</translation>
 <translation id="4600854749408232102">C6/C5 (Envelope)‎</translation>
+<translation id="4635654612248442824">האתר <ph name="ORIGIN" /> ביקש שמדיניות המקור
+    תחול על כל הבקשות שלו, אבל לא ניתן כרגע להחיל את המדיניות הזו.</translation>
 <translation id="464342062220857295">תכונות חיפוש</translation>
 <translation id="4646534391647090355">אני רוצה לעבור לשם עכשיו</translation>
+<translation id="4658638640878098064">סיכת הידוק בפינה השמאלית העליונה</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />; אישור האבטחה שלו מכיל שגיאות. ייתכן שהסיבה לכך היא הגדרה שגויה או תוקף המיירט את החיבור שלך.</translation>
 <translation id="467809019005607715">Google Slides</translation>
@@ -716,6 +757,7 @@
 <translation id="4756388243121344051">&amp;היסטוריה</translation>
 <translation id="4758311279753947758">הוסף פרטים ליצירת קשר</translation>
 <translation id="4764776831041365478">ייתכן שדף האינטרנט בכתובת <ph name="URL" /> אינו פעיל זמנית, או שהועבר לכתובת אינטרנט חדשה לצמיתות.</translation>
+<translation id="4766713847338118463">שתי סיכות הידוק בחלק התחתון</translation>
 <translation id="4771973620359291008">‏אירעה שגיאה לא מוכרת.
 
 
@@ -742,6 +784,7 @@
 <translation id="4880827082731008257">חיפוש בהיסטוריה</translation>
 <translation id="4881695831933465202">פתיחה</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">ניקוב בפינה השמאלית העליונה</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{ועוד דף אינטרנט אחד}two{ועוד # דפי אינטרנט}many{ועוד # דפי אינטרנט}other{ועוד # דפי אינטרנט}}</translation>
 <translation id="4923417429809017348">דף זה תורגם משפה לא ידועה ל<ph name="LANGUAGE_LANGUAGE" /></translation>
 <translation id="4923459931733593730">תשלום</translation>
@@ -753,6 +796,7 @@
 <translation id="495170559598752135">פעולות</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">הרחב רשימה</translation>
+<translation id="4973922308112707173">שני ניקובים בחלק העליון</translation>
 <translation id="4974590756084640048">הפעל מחדש אזהרות</translation>
 <translation id="4984339528288761049">Prc5 (Envelope)‎</translation>
 <translation id="4989163558385430922">אני רוצה לראות הכול</translation>
@@ -780,6 +824,7 @@
 <translation id="5087286274860437796">האישור של השרת אינו תקף כעת.</translation>
 <translation id="5087580092889165836">הוסף כרטיס</translation>
 <translation id="5089810972385038852">מדינה</translation>
+<translation id="5093232627742069661">‏קיפול Z</translation>
 <translation id="5094747076828555589">‏השרת הזה לא הצליח להוכיח שהוא <ph name="DOMAIN" />. אישור האבטחה שלו לא נחשב כמהימן על ידי Chromium. ייתכן שהסיבה לכך היא תצורה שגויה או תוקף המיירט את החיבור שלך.</translation>
 <translation id="5095208057601539847">פרובינציה</translation>
 <translation id="5097099694988056070">‏נתונים סטטיסטיים של המכשיר, כמו ניצול יחידת העיבוד המרכזית (CPU)/זיכרון RAM</translation>
@@ -816,6 +861,9 @@
 <translation id="5251803541071282808">ענן</translation>
 <translation id="5252000469029418751">C7 (Envelope)‎</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">התשלום הושלם</translation>
+<translation id="5266128565379329178">כריכה בקצה העליון</translation>
+<translation id="5269225904387178860">4 ניקובים בחלק התחתון</translation>
 <translation id="5269999699920406580">רק הבעלים יכול להגדיר תכונות שחלות על כל המערכת: <ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">‏אזהרה: המדיניות הזו לא עברה מיזוג בהתאם למדיניות PolicyDictionaryMultipleSourceMergeList, מאחר שהיא לא חלק מכללי מדיניות המילון שניתן למזג.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -828,6 +876,7 @@
 <translation id="5300589172476337783">הצגה</translation>
 <translation id="5308380583665731573">התחברות</translation>
 <translation id="5308689395849655368">דיווח קריסות מושבת.</translation>
+<translation id="5314967030527622926">יצירת חוברת</translation>
 <translation id="5317780077021120954">שמור</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> מתוך <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">בחירת פרטי איש קשר</translation>
@@ -843,6 +892,7 @@
 <translation id="5384855140246857529">כדי להשתמש בכרטיסים שלך בכל המכשירים, יש להיכנס לחשבון ולהפעיל את הסנכרון</translation>
 <translation id="5386426401304769735">‏שרשרת האישורים של האתר הזה כוללת אישור שנחתם באמצעות SHA-1.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">הידוק קצוות בצד ימין</translation>
 <translation id="540969355065856584">שרת זה לא הצליח להוכיח שהוא <ph name="DOMAIN" />; אישור האבטחה שלו אינו תקף כעת. הסיבה לכך עשויה להיות תצורה שגויה או שתוקף מיירט את החיבור שלך.</translation>
 <translation id="5421136146218899937">ניקוי נתוני גלישה...</translation>
 <translation id="5430298929874300616">הסר סימניה</translation>
@@ -869,6 +919,7 @@
 <translation id="5510766032865166053">ייתכן שהוא הועבר או נמחק.</translation>
 <translation id="5523118979700054094">שם מדיניות</translation>
 <translation id="552553974213252141">האם הטקסט נשלף כראוי?</translation>
+<translation id="55293785478302737">הידוק קצוות</translation>
 <translation id="553484882784876924">Prc6 (Envelope)‎</translation>
 <translation id="5540224163453853">לא ניתן היה למצוא את הפריט המבוקש.</translation>
 <translation id="5541546772353173584">הוספת כתובת אימייל</translation>
@@ -937,6 +988,7 @@
 <translation id="5893752035575986141">אפשר לשלם באמצעות כרטיסי אשראי.</translation>
 <translation id="5895138241574237353">הפעל מחדש</translation>
 <translation id="5901630391730855834">צהוב</translation>
+<translation id="5905445707201418379">נחסם בהתאם למדיניות המקור של <ph name="ORIGIN" />.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (מסונכרנים)</translation>
 <translation id="5916664084637901428">פועל</translation>
 <translation id="59174027418879706">מופעל</translation>
@@ -955,6 +1007,7 @@
 <translation id="598637245381783098">לא ניתן לפתוח את אפליקציית התשלומים</translation>
 <translation id="5989320800837274978">‏לא צוינו שרתי Proxy קבועים ולא כתובת אתר של סקריפט ‎.pac</translation>
 <translation id="5990559369517809815">בקשות שנשלחו לשרת נחסמו על ידי תוסף.</translation>
+<translation id="5992691462791905444">‏קיפול מסוג Engineering Z</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> תוצאות בשביל '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">שנה</translation>
@@ -963,8 +1016,11 @@
 <translation id="6017850046339264347">תוקפים שמשתמשים ב-<ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> עלולים להתקין יישומים מטעים שמתחזים לאחרים או לאסוף נתונים שאפשר להשתמש בהם כדי לעקוב אחריך. <ph name="BEGIN_LEARN_MORE_LINK" />מידע נוסף<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (מסונכרנים)</translation>
 <translation id="6027201098523975773">עליך להזין שם</translation>
+<translation id="603068602130820122">שתי סיכות הידוק בצד ימין</translation>
+<translation id="6032955021262906325">כריכה בקצה השמאלי</translation>
 <translation id="6034000775414344507">אפור בהיר</translation>
 <translation id="6034283069659657473">10x14 (Envelope)‎</translation>
+<translation id="6034514109191629503">קיפול אקורדיון</translation>
 <translation id="6039846035001940113">אם הבעיה ממשיכה, יש לפנות אל בעל האתר.</translation>
 <translation id="6040143037577758943">סגור</translation>
 <translation id="6044573915096792553">גודל 12</translation>
@@ -975,6 +1031,7 @@
 <translation id="6058977677006700226">רוצה להשתמש בכרטיסים בכל המכשירים שברשותך?</translation>
 <translation id="6059925163896151826">‏מכשירי USB</translation>
 <translation id="6060009363608157444">‏מצב DnsOverHttps לא חוקי.</translation>
+<translation id="6064217302520318294">נעילת מסך</translation>
 <translation id="6080696365213338172">ניגשת לתוכן באמצעות אישור שהוענק על ידי מנהל מערכת. מנהל המערכת שלך עשוי ליירט נתונים שתספק ל-<ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">הוספת הערה</translation>
 <translation id="610911394827799129">‏ייתכן שלחשבון Google שלך משויכים סוגים אחרים של היסטוריית גלישה בכתובת <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
@@ -982,6 +1039,7 @@
 <translation id="6146055958333702838">בדוק את הכבלים והפעל מחדש את הנתבים, המודמים ושאר התקני הרשת
   שאתה משתמש בהם.</translation>
 <translation id="614940544461990577">כדאי לנסות:</translation>
+<translation id="6150036310511284407">3 ניקובים בצד שמאל</translation>
 <translation id="6151417162996330722">תקופת התוקף של אישור השרת ארוכה מדי.</translation>
 <translation id="6157877588268064908">עליך לבחור כתובת כדי לראות שיטות משלוח ודרישות</translation>
 <translation id="6165508094623778733">למידע נוסף</translation>
@@ -989,7 +1047,9 @@
 <translation id="6177128806592000436">החיבור שלך לאתר הזה לא מאובטח</translation>
 <translation id="6203231073485539293">בדוק את חיבור האינטרנט</translation>
 <translation id="6218753634732582820">‏האם להסיר מ-Chromium את הכתובת?</translation>
+<translation id="622039917539443112">קיפול מקביל</translation>
 <translation id="6221345481584921695">‏לאחרונה, 'גלישה בטוחה של Google' ‏<ph name="BEGIN_LINK" />זיהתה תוכנה זדונית<ph name="END_LINK" /> ב-<ph name="SITE" />. אתרים שבדרך כלל נחשבים לבטוחים נדבקים לעתים בתוכנה זדונית. התוכן הזדוני מגיע מ-<ph name="SUBRESOURCE_HOST" />, מפיץ ידוע של תוכנות זדוניות.</translation>
+<translation id="6234122620015464377">חיתוך אחרי כל מסמך</translation>
 <translation id="6240447795304464094">‏הלוגו של Google Pay</translation>
 <translation id="6251924700383757765">מדיניות פרטיות</translation>
 <translation id="6254436959401408446">אין מספיק זיכרון כדי לפתוח את הדף</translation>
@@ -1015,17 +1075,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{אין}=1{סיסמה אחת (עבור <ph name="DOMAIN_LIST" />, מסונכרנת)}=2{שתי סיסמאות (עבור <ph name="DOMAIN_LIST" />, מסונכרנות)}many{# סיסמאות (עבור <ph name="DOMAIN_LIST" />, מסונכרנות)}other{# סיסמאות (עבור <ph name="DOMAIN_LIST" />, מסונכרנות)}}</translation>
 <translation id="6358450015545214790">מה זה אומר?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">שתי סיכות הידוק בצד שמאל</translation>
 <translation id="6377268785556383139">תוצאה אחת בשביל '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">ייתכנו חיובים באתר.</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{הצעה אחת נוספת}two{שתי הצעות נוספות}many{# הצעות נוספות}other{# הצעות נוספות}}</translation>
 <translation id="6387754724289022810">‏כדי לשלם מהר יותר בפעם הבאה, אפשר לשמור בחשבון Google ובמכשיר הזה את פרטי הכרטיס ואת הכתובת לחיוב.</translation>
+<translation id="6390200185239044127">‏קיפול Z עד האמצע</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">המדיניות הזו הוצאה משימוש. במקומה יש להשתמש במדיניות <ph name="NEW_POLICY" />.</translation>
 <translation id="6404511346730675251">ערוך סימניה</translation>
 <translation id="6406765186087300643">C0 (Envelope)‎</translation>
 <translation id="6410264514553301377">הזן את תאריך התפוגה ואת קוד האימות של <ph name="CREDIT_CARD" /></translation>
 <translation id="6415778972515849510">‏בעזרת Chromium אפשר להגן על חשבון Google ולשנות את הסיסמה.</translation>
+<translation id="6427730057873428458">כנף בקיפול</translation>
 <translation id="6431585503458005759">לא לאחסן</translation>
 <translation id="6433490469411711332">עריכת הפרטים ליצירת קשר</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> סירב להתחבר.</translation>
@@ -1036,6 +1099,7 @@
 <translation id="6446608382365791566">הוסף מידע</translation>
 <translation id="6447842834002726250">‏קובצי Cookie</translation>
 <translation id="6451458296329894277">אשר שליחה-מחדש של הטופס</translation>
+<translation id="6457206614190510200">קיפול והידוק של כפולות עמודים</translation>
 <translation id="6465306955648956876">ניהול סיסמאות...</translation>
 <translation id="647261751007945333">מדיניות המכשיר</translation>
 <translation id="6476284679642588870">ניהול אמצעי תשלום</translation>
@@ -1050,9 +1114,11 @@
 <translation id="6529602333819889595">&amp;ביצוע מחדש של מחיקה</translation>
 <translation id="6534179046333460208">הצעות לאינטרנט הפיזי</translation>
 <translation id="6545864417968258051">‏סריקת Bluetooth</translation>
+<translation id="6547208576736763147">שני ניקובים בצד שמאל</translation>
 <translation id="6554795675067793129">החשבון שלך מנוהל על-ידי <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">בצע מחדש</translation>
 <translation id="6569060085658103619">אתה מציג דף של תוסף</translation>
+<translation id="6573200754375280815">שני ניקובים בצד ימין</translation>
 <translation id="6578796323535178455">C2 (Envelope)‎</translation>
 <translation id="6579990219486187401">ורוד בהיר</translation>
 <translation id="6583674473685352014">B6 (Envelope)‎</translation>
@@ -1071,6 +1137,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{ללא}=1{‏מאתר אחד (לא תבוצע יציאה מחשבון Google שלך.)}two{‏מ-# אתרים (לא תבוצע יציאה מחשבון Google שלך.)}many{‏מ-# אתרים (לא תבוצע יציאה מחשבון Google שלך.)}other{‏מ-# אתרים (לא תבוצע יציאה מחשבון Google שלך.)}}</translation>
 <translation id="6652101503459149953">‏שימוש ב-Windows Hello</translation>
 <translation id="6657585470893396449">סיסמה</translation>
+<translation id="6665553082534466207">3 ניקובים בצד ימין</translation>
 <translation id="6670613747977017428">חזרה לדף הבטוח.</translation>
 <translation id="6671697161687535275">‏האם להסיר מ-Chromium הצעות לטפסים?</translation>
 <translation id="6685834062052613830">צא והשלם את ההגדרה</translation>
@@ -1291,6 +1358,7 @@
 <translation id="7764225426217299476">הוסף כתובת</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">תחום שיפוט</translation>
+<translation id="7791196057686275387">אריזה</translation>
 <translation id="7791543448312431591">הוספה</translation>
 <translation id="7800304661137206267">החיבור מוצפן באמצעות <ph name="CIPHER" /> עם <ph name="MAC" /> לאימות הודעות ועם <ph name="KX" /> בתור מנגנון להחלפת מפתחות.</translation>
 <translation id="7802523362929240268">האתר חוקי</translation>
@@ -1311,22 +1379,27 @@
 <translation id="7882421473871500483">חום</translation>
 <translation id="7887683347370398519">‏בדוק את ה-CVC ונסה שוב</translation>
 <translation id="7904208859782148177">C3 (Envelope)‎</translation>
+<translation id="7932579305932748336">ציפוי</translation>
 <translation id="79338296614623784">עליך להזין מספר טלפון חוקי</translation>
+<translation id="7934052535022478634">התשלום הושלם</translation>
 <translation id="7935318582918952113">DOM Distiller</translation>
 <translation id="7937554595067888181">בתוקף עד <ph name="EXPIRATION_DATE_ABBR" /></translation>
 <translation id="7938958445268990899">אישור השרת עדיין לא בתוקף.</translation>
 <translation id="7942349550061667556">אדום</translation>
 <translation id="7947285636476623132">בדוק את שנת התפוגה ונסה שוב</translation>
 <translation id="7951415247503192394">(32 סיביות)</translation>
+<translation id="7953569069500808819">הידוק קצוות בחלק העליון</translation>
 <translation id="7956713633345437162">סימניות לנייד</translation>
 <translation id="7961015016161918242">אף פעם</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">כריכה</translation>
 <translation id="7995512525968007366">לא צוין</translation>
 <translation id="800218591365569300">מומלץ לסגור כרטיסיות או תוכניות אחרות וכך לפנות מקום בזיכרון.</translation>
 <translation id="8004582292198964060">דפדפן</translation>
 <translation id="8009225694047762179">ניהול סיסמאות</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{הכרטיס הזה יישמר יחד עם הכתובת שלו לחיוב. יתאפשר לך להשתמש בו לאחר התחברות אל <ph name="USER_EMAIL" />.}two{הכרטיסים האלה יישמרו יחד עם הכתובות שלהם לחיוב. יתאפשר לך להשתמש בהם לאחר התחברות אל <ph name="USER_EMAIL" />.}many{הכרטיסים האלה יישמרו יחד עם הכתובות שלהם לחיוב. יתאפשר לך להשתמש בהם לאחר התחברות אל <ph name="USER_EMAIL" />.}other{הכרטיסים האלה יישמרו יחד עם הכתובות שלהם לחיוב. יתאפשר לך להשתמש בהם לאחר התחברות אל <ph name="USER_EMAIL" />.}}</translation>
 <translation id="8025119109950072390">תוקפים באתר הזה עשויים לגרום לך, בדרכי מרמה, לבצע פעולות מסוכנות כמו התקנת תוכנה או חשיפה של מידע אישי (לדוגמה: סיסמאות, מספרי טלפון או פרטי כרטיסי אשראי).</translation>
+<translation id="8028960012888758725">חיתוך אחרי העבודה</translation>
 <translation id="8034522405403831421">דף זה מוצג ב<ph name="SOURCE_LANGUAGE" />. האם לתרגם אותו ל<ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="8035152190676905274">עט</translation>
 <translation id="8037117624646282037">מי השתמש במכשיר לאחרונה</translation>
@@ -1341,6 +1414,7 @@
 <translation id="8074253406171541171">10x13 (Envelope)‎</translation>
 <translation id="8078141288243656252">לא ניתן להוסיף הערה במצב מסובב</translation>
 <translation id="8079031581361219619">לטעון את האתר מחדש?</translation>
+<translation id="8086971161893892807">טיוטה</translation>
 <translation id="8088680233425245692">הצגת הפריט נכשלה.</translation>
 <translation id="808894953321890993">שינוי הסיסמה</translation>
 <translation id="8090403583893450254">גודל 20</translation>
@@ -1356,6 +1430,7 @@
 <translation id="8131740175452115882">אישור</translation>
 <translation id="8149426793427495338">המחשב עבר למצב שינה.</translation>
 <translation id="8150722005171944719">הקובץ הנמצא ב-<ph name="URL" /> לא ניתן לקריאה. ייתכן שהקובץ הוסר או הועבר, או שהרשאות הקובץ מונעות גישה אליו.</translation>
+<translation id="8163866351304776260">4 ניקובים בצד שמאל</translation>
 <translation id="8175796834047840627">‏Chrome מציע לשמור את הכרטיסים שלך בחשבון Google כי התחברת לחשבון. אפשר לשנות את ההתנהגות הזאת בהגדרות.</translation>
 <translation id="8184538546369750125">השתמש בברירת המחדל הכללית (אפשר)</translation>
 <translation id="8194797478851900357">&amp;ביטול העברה</translation>
@@ -1378,6 +1453,7 @@
 <translation id="8253091569723639551">יש להזין כתובת לחיוב</translation>
 <translation id="825929999321470778">הצגת כל הסיסמאות השמורות</translation>
 <translation id="8261506727792406068">מחיקה</translation>
+<translation id="8262952874573525464">הידוק קצוות בחלק התחתון</translation>
 <translation id="8267698848189296333">נכנס כ-<ph name="USERNAME" /></translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">כניסה</translation>
@@ -1386,6 +1462,7 @@
 <translation id="8293206222192510085">הוסף סימניה</translation>
 <translation id="8294431847097064396">מקור</translation>
 <translation id="8298115750975731693">‏ייתכן שתידרש להיכנס ל-<ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> עבור רשת ה-Wi-Fi שבה אתה משתמש (<ph name="WIFI_NAME" />).</translation>
+<translation id="830498451218851433">קיפול באמצע</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">התרגום נכשל עקב בעיה בחיבור הרשת.</translation>
 <translation id="8332188693563227489">אין גישה אל <ph name="HOST_NAME" /></translation>
@@ -1414,6 +1491,7 @@
 <translation id="8461694314515752532">הצפנת נתונים מסונכרנים בעזרת ביטוי סיסמה אישי לסנכרון</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{כרטיס אשראי אחד}two{שני כרטיסי אשראי}many{# כרטיסי אשראי}other{# כרטיסי אשראי}}</translation>
 <translation id="8473863474539038330">כתובות ועוד</translation>
+<translation id="8479754468255770962">סיכת הידוק בפינה השמאלית התחתונה</translation>
 <translation id="8483780878231876732">‏כדי להשתמש בכרטיסים מחשבון Google, היכנס אל Chrome</translation>
 <translation id="8488350697529856933">חל על</translation>
 <translation id="8498891568109133222">ל-<ph name="HOST_NAME" /> נדרש זמן רב מדי להגיב.</translation>
@@ -1421,6 +1499,7 @@
 <translation id="8503813439785031346">שם משתמש</translation>
 <translation id="8508648098325802031">סמל החיפוש</translation>
 <translation id="8522552481199248698">‏בעזרת Chrome אפשר להגן על חשבון Google ולשנות את הסיסמה.</translation>
+<translation id="8542014550340843547">3 סיכות הידוק בחלק התחתון</translation>
 <translation id="8543181531796978784">באפשרותך <ph name="BEGIN_ERROR_LINK" />לדווח על בעיית זיהוי<ph name="END_ERROR_LINK" /> או, אם אתה מבין את סיכוני האבטחה, <ph name="BEGIN_LINK" />להיכנס לאתר הזה, שאינו מאובטח<ph name="END_LINK" />.</translation>
 <translation id="8553075262323480129">התרגום נכשל כיוון שלא הייתה אפשרות לקבוע את שפת הדף.</translation>
 <translation id="8557066899867184262">קוד האימות נמצא בגב הכרטיס.</translation>
@@ -1443,6 +1522,7 @@
 <translation id="8703575177326907206">ההתחברות שלך אל <ph name="DOMAIN" /> אינה מוצפנת.</translation>
 <translation id="8718314106902482036">התשלום לא הושלם</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, הצעת חיפוש</translation>
+<translation id="8719528812645237045">ניקובים מרובים בחלק העליון</translation>
 <translation id="8723954843026426558">אני מסכים/ה לתנאים ולהגבלות, למדיניות הפרטיות ולזכות הביטול של <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="8725066075913043281">נסה שוב</translation>
 <translation id="8728672262656704056">עברת למצב גלישה בסתר</translation>
@@ -1461,6 +1541,7 @@
 <translation id="8792621596287649091">‏הגישה שלך לחשבון <ph name="ORG_NAME" /> עשויה להישלל והזהות שלך עשויה להיגנב. ההמלצה של Chromium היא לשנות את הסיסמה עכשיו.</translation>
 <translation id="8800988563907321413">כאן מופיעות הצעות עבורך למקומות קרובים</translation>
 <translation id="8805819170075074995">‏ערך רשימה "<ph name="LANGUAGE_ID" />": המערכת התעלמה מהערך מאחר שהוא כלול גם במדיניות SpellcheckLanguage.</translation>
+<translation id="8807160976559152894">חיתוך אחרי כל עמוד</translation>
 <translation id="8820817407110198400">סימניות</translation>
 <translation id="883848425547221593">סימניות אחרות</translation>
 <translation id="884264119367021077">כתובת למשלוח</translation>
@@ -1468,6 +1549,7 @@
 <translation id="885730110891505394">‏שיתוף עם Google</translation>
 <translation id="8858065207712248076">‏אם הזנת את הסיסמה של <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> באתרים אחרים, ההמלצה של Chrome היא לאפס אותה.</translation>
 <translation id="8866481888320382733">שגיאה בניתוח הגדרות המדיניות</translation>
+<translation id="8866928039507595380">קיפול</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">נסגרו לאחרונה</translation>
 <translation id="8874824191258364635">עליך להזין מספר כרטיס חוקי</translation>
@@ -1475,6 +1557,7 @@
 <translation id="8903921497873541725">התקרב</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">‏חשבון Google</translation>
+<translation id="892588693504540538">ניקוב בפינה הימנית העליונה</translation>
 <translation id="8931333241327730545">‏האם ברצונך לשמור את הכרטיס הזה בחשבון Google שלך?</translation>
 <translation id="8932102934695377596">השעון שלך מאחר</translation>
 <translation id="893332455753468063">הוספת שם</translation>
@@ -1536,6 +1619,7 @@
 <translation id="9174917557437862841">‏לחצן החלפת כרטיסיות, צריך להקיש על Enter כדי לעבור לכרטיסייה הזו</translation>
 <translation id="9183302530794969518">Google Docs</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> משתמש בפרוטוקול שאינו נתמך.</translation>
+<translation id="9191834167571392248">ניקוב בפינה השמאלית התחתונה</translation>
 <translation id="9205078245616868884">הנתונים שלך מוצפנים באמצעות ביטוי הסיסמה לסינכרון. הזן אותו כדי להתחיל בסינכרון.</translation>
 <translation id="9207861905230894330">הוספת הפריט נכשלה.</translation>
 <translation id="9215416866750762878">‏יישום כלשהו לא מאפשר ל-Chrome להתחבר באופן מאובטח לאתר זה</translation>
@@ -1546,7 +1630,9 @@
 <translation id="936602727769022409">‏ייתכן שמישהו אחר ישלול את הגישה שלך לחשבון Google. לגלישה בטוחה ב-Chromium, מומלץ לשנות את הסיסמה עכשיו.</translation>
 <translation id="939736085109172342">תיקייה חדשה</translation>
 <translation id="945855313015696284">יש לבדוק את המידע שבהמשך ולמחוק כרטיסים עם שגיאות</translation>
+<translation id="950736567201356821">3 ניקובים בחלק העליון</translation>
 <translation id="951104842009476243">כרטיסי חיוב וכרטיסים משולמים מראש שהסוחר מקבל</translation>
+<translation id="961663415146723894">כריכה בקצה התחתון</translation>
 <translation id="962484866189421427">ייתכן שבתוכן הזה יש קוד להתקנת אפליקציות מטעות שמתחזות למשהו אחר או שאוספות נתונים המאפשרים לעקוב אחריך. <ph name="BEGIN_LINK" />אני רוצה לראות בכל זאת<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">גירסה רשמית</translation>
 <translation id="973773823069644502">הוספת כתובת למסירה</translation>
diff --git a/components/strings/components_strings_ja.xtb b/components/strings/components_strings_ja.xtb
index b97ff883..96d32f8f 100644
--- a/components/strings/components_strings_ja.xtb
+++ b/components/strings/components_strings_ja.xtb
@@ -666,7 +666,7 @@
 <translation id="4277028893293644418">パスワードを再設定</translation>
 <translation id="4279811152705618813">この <ph name="DEVICE_TYPE" /> は <ph name="ENROLLMENT_DOMAIN" /> によって管理されています</translation>
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{このカードを Google アカウントに保存しました}other{これらのカードを Google アカウントに保存しました}}</translation>
-<translation id="428847186335018806">Chrome でダウンロードまたはアップロードしたファイルをスキャンします。</translation>
+<translation id="428847186335018806">Chrome でダウンロードまたはアップロードするファイルをスキャンします。</translation>
 <translation id="42981349822642051">展開</translation>
 <translation id="4300675098767811073">多穴パンチ(右)</translation>
 <translation id="4302965934281694568">長3(封筒)</translation>
@@ -1018,6 +1018,7 @@
 <translation id="6058977677006700226">お使いのどのデバイスでも同じカードを使用できるようにしかすか?</translation>
 <translation id="6059925163896151826">USB デバイス</translation>
 <translation id="6060009363608157444">無効な DnsOverHttps モードです。</translation>
+<translation id="6064217302520318294">画面ロック</translation>
 <translation id="6080696365213338172">管理者が提供する証明書を使用してコンテンツにアクセスしています。<ph name="DOMAIN" /> に提供するデータは管理者によって傍受される可能性があります。</translation>
 <translation id="6094273045989040137">注釈を追加</translation>
 <translation id="610911394827799129">お使いの Google アカウントの <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> に、他の形式の閲覧履歴が記録されている場合があります</translation>
@@ -1128,7 +1129,7 @@
 <translation id="6671697161687535275">Chromium から候補を削除してもよろしいですか?</translation>
 <translation id="6685834062052613830">ログアウトして設定を完了してください</translation>
 <translation id="6689271823431384964">ログインしている場合は、その Google アカウントにカードを保存できます。この動作は設定で変更できます。カード名義人はアカウントから取得されます。</translation>
-<translation id="6707256370811247129">Chrome でダウンロードまたはアップロードしたキャッシュとファイルのコンテンツをスキャンします。</translation>
+<translation id="6707256370811247129">Chrome でキャッシュのコンテンツとダウンロードまたはアップロードするファイルをスキャンします。</translation>
 <translation id="6710213216561001401">前へ</translation>
 <translation id="6710594484020273272">&lt;検索キーワードを入力&gt;</translation>
 <translation id="671076103358959139">登録トークン:</translation>
diff --git a/components/strings/components_strings_kn.xtb b/components/strings/components_strings_kn.xtb
index 840d219..e03946a6 100644
--- a/components/strings/components_strings_kn.xtb
+++ b/components/strings/components_strings_kn.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">ವೈ-ಫೈಗೆ ಮರುಸಂಪರ್ಕಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="1165039591588034296">ದೋಷ</translation>
 <translation id="1175364870820465910">&amp;ಮುದ್ರಿಸಿ...</translation>
+<translation id="1175875016430184367">ಬಲಭಾಗದಲ್ಲಿ ಮೂರು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="1178581264944972037">ವಿರಾಮ</translation>
 <translation id="1181037720776840403">ತೆಗೆದುಹಾಕು</translation>
 <translation id="1197088940767939838">ಕಿತ್ತಳೆ</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">ಮಾಲ್‌ವೇರ್‌ ಸ್ಕ್ಯಾನಿಂಗ್</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />ನಿಮ್ಮ ಕುಕೀಗಳನ್ನು ತೆರವುಗೊಳಿಸಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">ತೆಗೆದುಹಾಕಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳು</translation>
+<translation id="1314509827145471431">ಬಲಗಡೆ ಬೈಂಡ್ ಮಾಡು</translation>
 <translation id="1320233736580025032">Prc1 (Envelope)</translation>
 <translation id="132301787627749051">ಕ್ಲಿಪ್‌ಬೋರ್ಡ್ ಚಿತ್ರಕ್ಕಾಗಿ ಹುಡುಕಿ</translation>
 <translation id="1323433172918577554">ಇನ್ನಷ್ಟು ತೋರಿಸಿ</translation>
 <translation id="132390688737681464">ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation>
+<translation id="1330449323196174374">ಎಡಭಾಗದ ಗೇಟ್ ಅನ್ನು ಮಡಿಸು</translation>
 <translation id="1333989956347591814">ನಿಮ್ಮ ಚಟುವಟಿಕೆಗಳು <ph name="BEGIN_EMPHASIS" />ಇನ್ನೂ ಇವರಿಗೆ ಕಾಣಿಸಿಕೊಳ್ಳಬಹುದು<ph name="END_EMPHASIS" /> :
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />ನೀವು ಭೇಟಿ ನೀಡಿದ ವೆಬ್‌ಸೈಟ್‌ಗಳು
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">ಆವೃತ್ತಿಯ ಕುರಿತು</translation>
 <translation id="1376836354785490390">ಕಡಿಮೆ ತೋರಿಸಿ</translation>
 <translation id="1377321085342047638">ಕಾರ್ಡ್ ಸಂಖ್ಯೆ</translation>
+<translation id="1380591466760231819">ಪತ್ರದ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="138218114945450791">ತಿಳಿ ನೀಲಿ</translation>
 <translation id="1382194467192730611">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು USB ಸಾಧನವನ್ನು ಅನುಮತಿಸಿದ್ದಾರೆ</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> ಯಾವುದೇ ಡೇಟಾ ಕಳುಹಿಸಲಾಗಿಲ್ಲ.</translation>
 <translation id="1405567553485452995">ತಿಳಿ ಹಸಿರು</translation>
 <translation id="1407135791313364759">ಎಲ್ಲವನ್ನೂ ತೆರೆಯಿರಿ</translation>
+<translation id="1408787208417187241">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಮೂರು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="1413809658975081374">ಗೌಪ್ಯತೆ ದೋಷ</translation>
 <translation id="1426410128494586442">ಹೌದು</translation>
 <translation id="1430915738399379752">ಮುದ್ರಿಸು</translation>
+<translation id="1442386063175183758">ಬಲಭಾಗದ ಗೇಟ್ ಅನ್ನು ಮಡಿಸು</translation>
+<translation id="1442987760062738829">ತೂತು ಮಾಡು</translation>
 <translation id="1455413310270022028">ಎರೇಸರ್</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">ಇನ್ನಷ್ಟು ತೋರಿಸಿ</translation>
@@ -202,6 +209,7 @@
 <translation id="1927235823738766038">ಸ್ವೀಕೃತ ಕ್ರೆಡಿಟ್ ಮತ್ತು ಡೆಬಿಟ್ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="194030505837763158"><ph name="LINK" /> ಗೆ ಹೋಗಿ</translation>
 <translation id="1945968466830820669">ನಿಮ್ಮ ಸಂಸ್ಥೆಯ ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಗುರುತು ಕಳ್ಳತನಕ್ಕೆ ಒಳಗಾಗಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಇದೀಗ ಬದಲಾಯಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
+<translation id="1947454675006758438">ಮೇಲಿನ ಬಲಭಾಗದಲ್ಲಿ ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="1948773908305951926">ಸಮ್ಮತಿಸಲಾದ ಪ್ರೀಪೇಯ್ಡ್ ಕಾರ್ಡ್‌ಗಳು</translation>
 <translation id="1962204205936693436"><ph name="DOMAIN" /> ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
 <translation id="1973335181906896915">ಅನುಕ್ರಮಗೊಳಿಸುವಿಕೆಯ ದೋಷ</translation>
@@ -211,6 +219,7 @@
 <translation id="1981206234434200693">Chrome ನ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸದ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{ಮತ್ತು 1 ಇನ್ನಷ್ಟು}one{ಮತ್ತು # ಇನ್ನಷ್ಟು}other{ಮತ್ತು # ಇನ್ನಷ್ಟು}}</translation>
 <translation id="2003709556000175978">ಇದೀಗ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಮರುಹೊಂದಿಸಿ</translation>
+<translation id="2003775180883135320">ಮೇಲ್ಭಾಗದಲ್ಲಿ ನಾಲ್ಕು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="2025186561304664664">ಪ್ರಾಕ್ಸಿಯನ್ನು ಸ್ವಯಂ ಕಾನ್ಫಿಗರ್ ಆಗಿ ಹೊಂದಿಸಲಾಗಿದೆ.</translation>
 <translation id="202813660234680402">ಬೇಡ, ಸೇರಿಸಬೇಡಿ</translation>
 <translation id="2030481566774242610">ನಿಮ್ಮ ಮಾತಿನ ಅರ್ಥ <ph name="LINK" />?</translation>
@@ -225,12 +234,14 @@
 <translation id="2091887806945687916">ಶಬ್ಧ</translation>
 <translation id="2094505752054353250">ಡೊಮೇನ್ ಹೊಂದುತ್ತಿಲ್ಲ</translation>
 <translation id="2096368010154057602">ವಿಭಾಗ</translation>
+<translation id="2099652385553570808">ಎಡಭಾಗದಲ್ಲಿ ಮೂರು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="2102134110707549001">ಸದೃಢವಾದ ಪಾಸ್‌ವರ್ಡ್ ಸೂಚಿಸಿ…</translation>
 <translation id="2108755909498034140">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">ಕಾರ್ಡ್</translation>
 <translation id="2114841414352855701"><ph name="POLICY_NAME" /> ರಿಂದ ಅತಿಕ್ರಮಿಸಲಾಗಿರುವ ಕಾರಣ ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation>
 <translation id="2119505898009119320">ಇವರಿಗೆ ನೀಡಲಾಗಿದೆ: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">ಕೆಳಗಿನ ಬಲಭಾಗದಲ್ಲಿ ತೂತು ಮಾಡು</translation>
 <translation id="2129079103035905234">ಚಲನಾ ಸೆನ್ಸರ್‌ಗಳು</translation>
 <translation id="213826338245044447">ಮೊಬೈಲ್ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
 <translation id="214556005048008348">ಪಾವತಿಯನ್ನು ರದ್ದುಮಾಡಿ</translation>
@@ -245,6 +256,7 @@
 <translation id="2183608646556468874">ಫೋನ್ ಸಂಖ್ಯೆ</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 ವಿಳಾಸ}one{# ವಿಳಾಸಗಳು}other{# ವಿಳಾಸಗಳು}}</translation>
 <translation id="2187317261103489799">ಪತ್ತೆ ಮಾಡಿ (ಡಿಫಾಲ್ಟ್)</translation>
+<translation id="2188375229972301266">ಕೆಳಭಾಗದಲ್ಲಿ ಅನೇಕ ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="2202020181578195191">ಮಾನ್ಯವಾದ ಅವಧಿ-ಮುಕ್ತಾಯ ವರ್ಷವನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="2212735316055980242">ನೀತಿ ಕಂಡು ಬಂದಿಲ್ಲ</translation>
 <translation id="2213606439339815911">ನಮೂದುಗಳನ್ನು ಪಡೆಯಲಾಗುತ್ತಿದೆ...</translation>
@@ -254,6 +266,7 @@
 <translation id="2230458221926704099"><ph name="BEGIN_LINK" />ಡಯಾಗ್ನಸ್ಟಿಕ್ಸ್‌‌ ಅಪ್ಲಿಕೇಶನ್‌<ph name="END_LINK" /> ಬಳಸಿಕೊಂಡು ನಿಮ್ಮ ಸಂಪರ್ಕವನ್ನು ಸರಿಪಡಿಸಿ</translation>
 <translation id="2239100178324503013">ಈಗ ಕಳುಹಿಸಿ</translation>
 <translation id="2248949050832152960">WebAuthn ಬಳಸಿ</translation>
+<translation id="2250931979407627383">ಎಡಭಾಗದ ಅಂಚನ್ನು ಹೊಲಿ</translation>
 <translation id="225207911366869382">ಈ ನೀತಿಗಾಗಿ ಈ ಮೌಲ್ಯವನ್ನು ಅಸಮ್ಮತಿಸಲಾಗಿದೆ.</translation>
 <translation id="2257315177824333709">ಕ್ಷಮಿಸಿ, ನಿಮ್ಮ ಕಾರ್ಡ್ ಅನ್ನು ಇದೀಗ ಉಳಿಸಲು ಸಾಧ್ಯವಾಗುತ್ತಿಲ್ಲ</translation>
 <translation id="2262243747453050782">HTTP ದೋಷ</translation>
@@ -261,6 +274,7 @@
 <translation id="2270484714375784793">ಫೋನ್ ಸಂಖ್ಯೆ</translation>
 <translation id="2277103315734023688">ಮುಂದಕ್ಕೆ ಸೀಕ್ ಮಾಡಿ</translation>
 <translation id="2283340219607151381">ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಿ ಮತ್ತು ಭರ್ತಿ ಮಾಡಿ</translation>
+<translation id="2289385804009217824">ಟ್ರಿಮ್ ಮಾಡು</translation>
 <translation id="2292556288342944218">ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಪ್ರವೇಶ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
@@ -288,10 +302,12 @@
 <translation id="2409589295040002961">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ದೂರದಿಂದಲೇ ನಿಮ್ಮ ಬ್ರೌಸರ್ ಸೆಟಪ್ ಅನ್ನು ಬದಲಾಯಿಸಬಹುದು. ಈ ಸಾಧನದಲ್ಲಿನ ಚಟುವಟಿಕೆಯನ್ನು Chrome ನಿಂದ ಹೊರಗೂ ನಿರ್ವಹಿಸಬಹುದು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಹಿಂತೆಗೆದುಕೊಳ್ಳಲಾಗಿರಬಹುದು. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
+<translation id="2438874542388153331">ಬಲಭಾಗದಲ್ಲಿ ನಾಲ್ಕು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="2463193859425327265">ಮುಖಪುಟವನ್ನು ಬದಲಾಯಿಸಿ</translation>
 <translation id="2463739503403862330">ಭರ್ತಿ ಮಾಡು</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">ವಿತರಣೆ ವಿಧಾನವನ್ನು ಆರಿಸಿ</translation>
+<translation id="2465688316154986572">ಸ್ಟೇಪಲ್</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />ನೆಟ್‌ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್‌ ರನ್ ಆಗುತ್ತಿದೆ<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">ಈ ಪುಟವನ್ನು ಅನುವಾದಿಸಿ</translation>
 <translation id="2479410451996844060">ಅಮಾನ್ಯವಾದ ಹುಡುಕಾಟ URL.</translation>
@@ -308,6 +324,7 @@
 <translation id="2505268675989099013">ಖಾತೆಯನ್ನು ಸಂರಕ್ಷಿಸಿ</translation>
 <translation id="2515335152965840738">ನಿರ್ಲಕ್ಷಿಸಿ</translation>
 <translation id="2515629240566999685">ನಿಮ್ಮ ಪ್ರದೇಶದಲ್ಲಿನ ಸಿಗ್ನಲ್ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</translation>
+<translation id="2521385132275182522">ಕೆಳಗಿನ ಬಲಭಾಗದಲ್ಲಿ ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="2523886232349826891">ಈ ಸಾಧನದಲ್ಲಿ ಮಾತ್ರ ಉಳಿಸಲಾಗಿದೆ</translation>
 <translation id="2524461107774643265">ಇನ್ನಷ್ಟು ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{ಮತ್ತು ಇನ್ನೂ 1}one{ಮತ್ತು ಇನ್ನೂ #}other{ಮತ್ತು ಇನ್ನೂ #}}</translation>
@@ -325,10 +342,12 @@
 <translation id="2618023639789766142">C10 (Envelope)</translation>
 <translation id="2625385379895617796">ನಿಮ್ಮ ಗಡಿಯಾರವು ಮುಂದೆ ಇದೆ</translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> ನ ಸರ್ವರ್ IP ವಿಳಾಸ ಕಂಡುಬರಲಿಲ್ಲ.</translation>
+<translation id="2638745661847473633">ನೀವು ಪ್ರವೇಶಿಸುತ್ತಿರುವ ಸರ್ವರ್, <ph name="ORIGIN" />, ತನ್ನ ಎಲ್ಲಾ ವಿನಂತಿಗಳಿಗೆ ಮೂಲ ಕಾರ್ಯನೀತಿಯನ್ನು ಅನ್ವಯಿಸಲು ವಿನಂತಿಸಿದೆ. ಆದರೆ, ಇದು ಈಗ ಅಮಾನ್ಯ ಕಾರ್ಯನೀತಿ ಒಂದನ್ನು ಒದಗಿಸಿದೆ, ಇದರಿಂದ <ph name="SITE" /> ಗಾಗಿ ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು ಬ್ರೌಸರ್ ಈಡೇರಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ. ಸೈಟ್‌ ಒಂದಕ್ಕಾಗಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಇತರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಸೈಟ್ ಆಪರೇಟರ್‌ಗಳು ಮೂಲ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಬಳಸಬಹುದು.</translation>
 <translation id="2639739919103226564">ಸ್ಥಿತಿ: </translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">ಫೈಲ್‌ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ</translation>
 <translation id="2653659639078652383">ಸಲ್ಲಿಸು</translation>
+<translation id="2660650542324841986">ನೀವು ಪ್ರವೇಶಿಸುತ್ತಿರುವ ಸರ್ವರ್, <ph name="ORIGIN" />, ತನ್ನ ಎಲ್ಲಾ ವಿನಂತಿಗಳಿಗೆ ಮೂಲ ಕಾರ್ಯನೀತಿಯನ್ನು ಅನ್ವಯಿಸಲು ವಿನಂತಿಸಿದೆ. ಅದರೆ ಇದು ಈಗ ಕಾರ್ಯನೀತಿಯನ್ನು ಒದಗಿಸಲು ವಿಫಲವಾಗಿದೆ, ಇದು <ph name="SITE" /> ಗಾಗಿ ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು ಈಡೇರಿಸದ ಹಾಗೆ ಬ್ರೌಸರ್ ಅನ್ನು ತಡೆಯುತ್ತದೆ. ಸೈಟ್‌ ಒಂದಕ್ಕಾಗಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಇತರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಸೈಟ್ ಆಪರೇಟರ್‌ಗಳು ಮೂಲ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಬಳಸಬಹುದು.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{ಒಂದೂ ಇಲ್ಲ}=1{1 ಪಾಸ್‌ವರ್ಡ್ (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು)}=2{2 ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು)}one{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು)}other{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು)}}</translation>
 <translation id="2666117266261740852">ಇತರ ಟ್ಯಾಬ್‌ಗಳು ಅಥವಾ ಅಪ್ಲಿಕೇಶನ್‍ಗಳನ್ನು ಮುಚ್ಚಿ</translation>
 <translation id="2674170444375937751">ನಿಮ್ಮ ಇತಿಹಾಸದಿಂದ ನೀವು ಈ ಪುಟಗಳನ್ನು ಖಚಿತವಾಗಿ ಅಳಿಸಲು ಬಯಸುತ್ತಿದ್ದೀರಾ?</translation>
@@ -343,6 +362,7 @@
 <translation id="2713444072780614174">ಬಿಳಿ</translation>
 <translation id="2720342946869265578">ಸಮೀಪ ಸಾಧನ</translation>
 <translation id="2721148159707890343">ವಿನಂತಿಯನ್ನು ಯಶಸ್ವಿಗೊಳಿಸಲಾಗಿದೆ</translation>
+<translation id="272451190272506600">ಪಾವತಿಸಲು ಸೆನ್ಸರ್ ಅನ್ನು ಸ್ಪರ್ಶಿಸಿ</translation>
 <translation id="2728127805433021124">ಕ್ಷೀಣವಾದ ಸಹಿ ಅಲ್ಗಾರಿದಮ್ ಬಳಸಿಕೊಂಡು ಸರ್ವರ್‌ನ ಪ್ರಮಾಣಪತ್ರಕ್ಕೆ ಸಹಿ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />ಸಂಪರ್ಕ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್‌ ರನ್ ಆಗುತ್ತಿದೆ<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">ಈ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಸಕ್ರಿಯಗೊಳಿಸುವುದರಿಂದ, ನೀವು ಬ್ರೌಸಿಂಗ್‌ ಡೇಟಾವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ನಿಮ್ಮ ಸುರಕ್ಷತೆ ಅಥವಾ ಗೌಪ್ಯತೆಗೆ ಧಕ್ಕೆ ಉಂಟಾಗಬಹುದು. ಸಕ್ರಿಯಗೊಳಿಸಲಾದ ವೈಶಿಷ್ಟ್ಯಗಳು ಈ ಬ್ರೌಸರ್‌ ಬಳಸುವ ಎಲ್ಲಾ ಬಳಕೆದಾರರಿಗೆ ಅನ್ವಯವಾಗುತ್ತವೆ.</translation>
@@ -366,8 +386,10 @@
 <translation id="2847118875340931228">ಅದೃಶ್ಯ ವಿಂಡೋವನ್ನು ತೆರೆಯಿರಿ</translation>
 <translation id="2850739647070081192">Invite (Envelope)</translation>
 <translation id="2856444702002559011">ದಾಳಿಕೋರರು <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ನಿಂದ ನಿಮ್ಮ ಮಾಹಿತಿಯನ್ನು ಕದಿಯಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರಬಹುದು (ಉದಾಹರಣೆಗೆ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಸಂದೇಶಗಳು ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು). <ph name="BEGIN_LEARN_MORE_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">ಪೋಸ್ಟರ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">ಕಾರ್ಡ್‌ ಉಳಿಸುವುದೇ?</translation>
+<translation id="2882949212241984732">ಡಬಲ್-ಗೇಟ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="2903493209154104877">ವಿಳಾಸಗಳು</translation>
 <translation id="290376772003165898"><ph name="LANGUAGE" /> ನಲ್ಲಿನ ಪುಟ ಇಲ್ಲವೇ?</translation>
 <translation id="2909946352844186028">ನೆಟ್‌ವರ್ಕ್ ಬದಲಾವಣೆಯನ್ನು ಪತ್ತೆ ಮಾಡಲಾಗಿದೆ.</translation>
@@ -377,6 +399,7 @@
 <translation id="2925673989565098301">ವಿತರಣೆ ವಿಧಾನ</translation>
 <translation id="2928905813689894207">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ಮತ್ತು <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> ಇನ್ನಷ್ಟು}one{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ಮತ್ತು <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> ಇನ್ನಷ್ಟು}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> ಮತ್ತು <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> ಇನ್ನಷ್ಟು}}</translation>
+<translation id="2930577230479659665">ಪ್ರತಿ ಮುದ್ರಣಪ್ರತಿಯ ನಂತರ ಟ್ರಿಮ್ ಮಾಡಿ</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವು <ph name="DOMAIN2" /> ದಿಂದ ಆಗಿದೆ. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
 <translation id="2948083400971632585">ಸಂಪರ್ಕಕ್ಕಾಗಿ ಕಾನ್ಫಿಗರ್ ಮಾಡಲಾಗಿರುವ ಯಾವುದೇ ಪ್ರಾಕ್ಸಿಗಳನ್ನು ನೀವು ಸೆಟ್ಟಿಂಗ್‌ಗಳ ಪುಟದಿಂದ ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು.</translation>
@@ -390,6 +413,7 @@
 <translation id="2985398929374701810">ಮಾನ್ಯ ವಿಳಾಸವನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="2986368408720340940">ಈ ಪಿಕಪ್ ವಿಧಾನ ಲಭ್ಯವಿಲ್ಲ. ಬೇರೊಂದು ವಿಧಾನವನ್ನು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="2987034854559945715">ಯಾವುದೇ ಹೊಂದಾಣಿಕೆಯ ವೈಶಿಷ್ಟ್ಯಗಳು ಕಂಡುಬಂದಿಲ್ಲ</translation>
+<translation id="2989742184762224133">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಎರಡು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="2991174974383378012">ವೆಬ್‌ಸೈಟ್‌ಗಳ ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳುವುದು</translation>
 <translation id="2991571918955627853">ವೆಬ್‌ಸೈಟ್ HSTS ಅನ್ನು ಬಳಸುವ ಕಾರಣದಿಂದ ನೀವು ಸದ್ಯಕ್ಕೆ <ph name="SITE" /> ಅನ್ನು ಭೇಟಿ ನೀಡಲು ಸಾಧ್ಯವಿಲ್ಲ. ನೆಟ್‌ವರ್ಕ್ ದೋಷಗಳು ಮತ್ತು ಆಕ್ರಮಣಗಳು ಸಾಮಾನ್ಯವಾಗಿ ತಾತ್ಕಾಲಿಕವಾಗಿವೆ, ಹಾಗಾಗಿ ಈ ಪುಟವು ಸ್ವಲ್ಪ ಸಮಯದ ನಂತರ ಕಾರ್ಯ ನಿರ್ವಹಿಸಬಹುದು.</translation>
 <translation id="3005723025932146533">ಉಳಿಸಲಾದ ನಕಲನ್ನು ತೋರಿಸು</translation>
@@ -408,6 +432,7 @@
 <translation id="3096100844101284527">ಪಿಕಪ್ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="3105172416063519923">ಸ್ವತ್ತು ID:</translation>
 <translation id="3109728660330352905">ಈ ಪುಟ ವೀಕ್ಷಿಸುವ ಅಧಿಕಾರ ನಿಮಗಿಲ್ಲ</translation>
+<translation id="3116158981186517402">ಲ್ಯಾಮಿನೇಟ್ ಮಾಡು</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />ಸಂಪರ್ಕ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ‌<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ಖಾತೆಯ ಸೈನ್ ಇನ್ ಡೇಟಾ}one{# ಖಾತೆಗಳ ಸೈನ್ ಇನ್ ಡೇಟಾ}other{# ಖಾತೆಗಳ ಸೈನ್ ಇನ್ ಡೇಟಾ}}</translation>
@@ -421,6 +446,7 @@
 <translation id="3174168572213147020">ದ್ವೀಪ</translation>
 <translation id="3176929007561373547">ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಕಾರ್ಯವನಿರ್ವಹಿಸುತ್ತಿದೆಯೇ ಎಂಬುದನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಲು ನಿಮ್ಮ ಪ್ರಾಕ್ಸಿ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ನಿಮ್ಮ ನೆಟ್‌ವರ್ಕ್ ನಿರ್ವಾಹಕರನ್ನು ಸಂಪರ್ಕಿಸಿ. ನೀವು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಅನ್ನು ಬಳಸುತ್ತಿಲ್ಲ ಎಂಬ ಅನುಮಾನ ನಿಮಗಿದ್ದರೆ:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">ಖಾತೆಯಲ್ಲಿರುವ ಬಾಕಿ ಹಣ</translation>
 <translation id="3195213714973468956"><ph name="SERVER_NAME" /> ನಲ್ಲಿ <ph name="PRINTER_NAME" /></translation>
 <translation id="320323717674993345">ಪಾವತಿಯನ್ನು ರದ್ದುಮಾಡಿ</translation>
 <translation id="3207960819495026254">ಬುಕ್‌ಮಾರ್ಕ್‌ ಮಾಡಲಾಗಿದೆ</translation>
@@ -491,6 +517,7 @@
 <translation id="358285529439630156">ಡೆಬಿಟ್‌ ಮತ್ತು ಪ್ರೀಪೇಯ್ಡ್‌ ಕಾರ್ಡ್‌ಗಳನ್ನು ಸಮ್ಮತಿಸಲಾಗಿದೆ.</translation>
 <translation id="3582930987043644930">ಹೆಸರು ಸೇರಿಸಿ</translation>
 <translation id="3583757800736429874">&amp;ಸರಿಸುವುದನ್ನು ಮತ್ತೆಮಾಡು</translation>
+<translation id="3584299510153766161">ಕೆಳಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="3586931643579894722">ವಿವರಗಳನ್ನು ಮರೆಮಾಡಿ</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -510,6 +537,7 @@
 <translation id="3678529606614285348">ಪುಟವನ್ನು ಹೊಸ ಅದೃಶ್ಯ ವಿಂಡೋದಲ್ಲಿ ತೆರೆಯಿರಿ (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> ನಲ್ಲಿ ಕ್ರ್ಯಾಶ್ ವರದಿಯನ್ನು ಸೆರೆಹಿಡಿಯಲಾಗಿದೆ, <ph name="UPLOAD_TIME" /> ಸಮಯಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ</translation>
 <translation id="3681007416295224113">ಪ್ರಮಾಣಪತ್ರ ಮಾಹಿತಿ</translation>
+<translation id="3688109723158850780">ನೀವು ಪ್ರವೇಶಿಸುತ್ತಿರುವ ಸರ್ವರ್, <ph name="ORIGIN" />, ತನ್ನ ಎಲ್ಲಾ ವಿನಂತಿಗಳಿಗೆ ಮೂಲ ಕಾರ್ಯನೀತಿಯನ್ನು ಅನ್ವಯಿಸಲು ವಿನಂತಿಸಿದೆ. ಆದರೆ ಕಾರ್ಯನೀತಿಯನ್ನು ಒದಗಿಸುವ ಬದಲಿಗೆ, ಅದು ಬ್ರೌಸರ್ ಅನ್ನು ಬೇರೆಲ್ಲಿಗೋ ಮರುನಿರ್ದೇಶಿಸಿದೆ, ಇದು <ph name="SITE" /> ಗಾಗಿ ನಿಮ್ಮ ವಿನಂತಿಯನ್ನು ಈಡೇರಿಸದ ಹಾಗೆ ಬ್ರೌಸರ್ ಅನ್ನು ತಡೆಯುತ್ತದೆ. ಸೈಟ್‌ ಒಂದಕ್ಕಾಗಿ ಸುರಕ್ಷತೆ ಮತ್ತು ಇತರ ಗುಣಲಕ್ಷಣಗಳನ್ನು ಕಾನ್ಫಿಗರ್ ಮಾಡಲು ಸೈಟ್ ಆಪರೇಟರ್‌ಗಳು ಮೂಲ ಕಾರ್ಯನೀತಿಗಳನ್ನು ಬಳಸಬಹುದು.</translation>
 <translation id="3701427423622901115">ಮರುಹೊಂದಿಸುವಿಕೆಯನ್ನು ಅಂಗೀಕರಿಸಲಾಗಿದೆ.</translation>
 <translation id="3704162925118123524">ನೀವು ಬಳಸುತ್ತಿರುವ ನೆಟ್‌ವರ್ಕ್‌ನ ಲಾಗಿನ್ ಪುಟಕ್ಕೆ ಭೇಟಿ ನೀಡಬೇಕಾದ ಅಗತ್ಯವಿದೆ.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -542,6 +570,7 @@
 <translation id="382518646247711829">ನೀವು ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್ ಬಳಸಿದರೆ...</translation>
 <translation id="3828924085048779000">ಖಾಲಿ ಪಾಸ್‌ಫ್ರೇಸ್ ಅನ್ನು ಅನುಮತಿಸುವುದಿಲ್ಲ.</translation>
 <translation id="3831915413245941253">ಹೆಚ್ಚುವರಿ ಕಾರ್ಯವಿಧಾನಗಳಿಗಾಗಿ <ph name="ENROLLMENT_DOMAIN" /> ವಿಸ್ತರಣೆಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿದೆ. ವಿಸ್ತರಣೆಗಳು ನಿಮ್ಮ ಕೆಲವು ಡೇಟಾಕ್ಕೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿರುತ್ತವೆ.</translation>
+<translation id="3832522519263485449">ಎಡಭಾಗದಲ್ಲಿ ಅನೇಕ ತೂತುಗಳನ್ನು ಮಾಡಿ</translation>
 <translation id="385051799172605136">ಹಿಂದೆ</translation>
 <translation id="3858027520442213535">ದಿನಾಂಕ ಮತ್ತು ಸಮಯವನ್ನು ಅಪ್‌ಡೇಟ್‌ ಮಾಡಿ</translation>
 <translation id="3884278016824448484">ಸಂಘರ್ಷಗೊಳ್ಳುತ್ತಿರುವ ಸಾಧನ ಗುರುತಿಸುವಿಕೆ</translation>
@@ -563,6 +592,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> ಅನ್ನು ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ</translation>
 <translation id="3981540111851280311">ನಿಮ್ಮ ಬ್ರೌಸರ್‌ನಲ್ಲಿ Chrome ಎಂಟರ್‌ಪ್ರೈಸ್ ಬೆದರಿಕೆ ರಕ್ಷಣೆಯನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ಸಕ್ರಿಯಗೊಳಿಸಿದೆ. Chrome ಎಂಟರ್‌ಪ್ರೈಸ್ ಬೆದರಿಕೆ ರಕ್ಷಣೆಯು ನಿಮ್ಮ ಕೆಲವು ಡೇಟಾಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿದೆ.</translation>
 <translation id="3987940399970879459">1 MB ಗಿಂತ ಕಡಿಮೆ</translation>
+<translation id="3990250421422698716">ಜಾಗ್ ಆಫ್‌ಸೆಟ್</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{ಹತ್ತಿರದ 1 ವೆಬ್ ಪುಟ}one{ಹತ್ತಿರದ # ವೆಬ್ ಪುಟಗಳು}other{ಹತ್ತಿರದ # ವೆಬ್ ಪುಟಗಳು}}</translation>
 <translation id="4030383055268325496">&amp;ಸೇರಿಸುವುದನ್ನು ರದ್ದುಗೊಳಿಸಿ</translation>
 <translation id="4032320456957708163">ನಿಮ್ಮ ಬ್ರೌಸರ್ ಅನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ನಿರ್ವಹಿಸುತ್ತಿದೆ</translation>
@@ -583,6 +613,7 @@
 <translation id="4112140312785995938">ಹಿಂದಕ್ಕೆ ಸೀಕ್ ಮಾಡಿ</translation>
 <translation id="4116663294526079822">ಈ ಸೈಟ್‌ನಲ್ಲಿ ಯಾವಾಗಲೂ ಅನುಮತಿಸಿ</translation>
 <translation id="4117700440116928470">ನೀತಿಯ ವ್ಯಾಪ್ತಿಯು ಬೆಂಬಲಿತವಾಗಿಲ್ಲ.</translation>
+<translation id="4123572138124678573">ಕೆಳಭಾಗದಲ್ಲಿ ಮೂರು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 ಇತರೆ}one{# ಇತರೆ}other{# ಇತರೆ}}</translation>
 <translation id="4130226655945681476">ನೆಟ್‌ವರ್ಕ್ ಕೇಬಲ್‌ಗಳು, ಮೊಡೆಮ್ ಮತ್ತು ರೂಟರ್ ಪರಿಶೀಲಿಸಲಾಗುತ್ತಿದೆ</translation>
 <translation id="413544239732274901">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
@@ -619,6 +650,7 @@
     &lt;h4&gt;ಹಂತ 5: ಹೆಚ್ಚುವರಿ ಸಹಾಯ ಪಡೆಯಿರಿ&lt;/h4&gt;
     &lt;p&gt;ದೋಷವು ಇನ್ನೂ ಕಾಣಿಸಿಕೊಳ್ಳುತ್ತಿದ್ದರೆ, ವೆಬ್‌ಸೈಟ್ ಮಾಲೀಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />ನೆಟ್‌ವರ್ಕ್ ಡಯಾಗ್ನಾಸ್ಟಿಕ್ಸ್‌ ರನ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಿ<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" /><ph name="SITE" /> ವೆಬ್‌ಸೈಟ್‌ಗೆ ಮುಂದುವರೆಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">ಮಾನ್ಯವಾಗಿದೆ</translation>
 <translation id="4250431568374086873">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಸಂಪೂರ್ಣವಾಗಿ ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation>
 <translation id="4250680216510889253">ಇಲ್ಲ</translation>
@@ -632,6 +664,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{ಈ ಕಾರ್ಡ್ ಅನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ}one{ಈ ಕಾರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ}other{ಈ ಕಾರ್ಡ್‌ಗಳನ್ನು ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ}}</translation>
 <translation id="428847186335018806">ನೀವು Chrome ನಲ್ಲಿ ಡೌನ್‌ಲೋಡ್ ಮಾಡುವ ಅಥವಾ ಅಪ್‌ಲೋಡ್ ಮಾಡುವ ಫೈಲ್‌ಗಳನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಿ.</translation>
 <translation id="42981349822642051">ವಿಸ್ತರಿಸಿ</translation>
+<translation id="4300675098767811073">ಬಲಭಾಗದಲ್ಲಿ ಅನೇಕ ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="4302965934281694568">Chou3 (Envelope)</translation>
 <translation id="4305817255990598646">ಬದಲಿಸಿ</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -646,6 +679,7 @@
 <translation id="4356973930735388585">ಈ ಸೈಟ್‌ನಲ್ಲಿರುವ ದಾಳಿಕೋರರು ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್‌ನಲ್ಲಿರುವ ಮಾಹಿತಿ (ಉದಾಹರಣೆಗೆ, ಫೋಟೋಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್ ಮಾಹಿತಿಗಳು) ಕದಿಯಲು ಇಲ್ಲವೇ ಅಳಿಸಲು ಅಪಾಯಕಾರಿ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸುತ್ತಿರಬಹುದು.</translation>
 <translation id="4358461427845829800">ಪಾವತಿ ವಿಧಾನಗಳನ್ನು ನಿರ್ವಹಿಸಿ...</translation>
 <translation id="4367563149485757821">Number-12 (Envelope)</translation>
+<translation id="437058704415269440">ಖಾತೆಯಲ್ಲಿರುವ ಬಾಕಿ ಹಣ</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">ನಿರೀಕ್ಷಿತ <ph name="VALUE_TYPE" /> ಮೌಲ್ಯ.</translation>
 <translation id="4377125064752653719">ನೀವು <ph name="DOMAIN" /> ಅನ್ನು ತಲುಪಲು ಪ್ರಯತ್ನಿಸಿದಿರಿ, ಆದರೆ ಸರ್ವರ್ ನೀಡಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಅದರ ನೀಡುವವರು ಹಿಂತೆಗೆದುಕೊಂಡಿದ್ದಾರೆ. ಇದರರ್ಥ ಸರ್ವರ್ ನೀಡಿದ ಸುರಕ್ಷತೆ ರುಜುವಾತುಗಳನ್ನು ಖಂಡಿತವಾಗಿ ನಂಬಲಾಗುವುದಿಲ್ಲ. ನೀವು ಆಕ್ರಮಣಕಾರರೊಂದಿಗೆ ಸಂವಹಿಸುತ್ತಿರಬಹುದು.</translation>
@@ -687,8 +721,10 @@
 <translation id="4594403342090139922">&amp;ಅಳಿಸುವುದನ್ನು ರದ್ದುಗೊಳಿಸಿ</translation>
 <translation id="4597348597567598915">ಗಾತ್ರ 8</translation>
 <translation id="4600854749408232102">C6/C5 (Envelope)</translation>
+<translation id="4635654612248442824"><ph name="ORIGIN" /> ಸೈಟ್ ತನ್ನ ಎಲ್ಲಾ ವಿನಂತಿಗಳಿಗೆ ಮೂಲ ಕಾರ್ಯನೀತಿಯೊಂದನ್ನು ಅನ್ವಯಿಸಲು ವಿನಂತಿಸಿದೆ, ಆದರೆ ಈ ನೀತಿಯನ್ನು ಪ್ರಸ್ತುತ ಅನ್ವಯಿಸಲು ಸಾಧ್ಯವಾಗುವುದಿಲ್ಲ.</translation>
 <translation id="464342062220857295">ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಹುಡುಕಿ</translation>
 <translation id="4646534391647090355">ನನ್ನನ್ನು ಈಗ ಅಲ್ಲಿಗೆ ಕರೆದೊಯ್ಯಿರಿ</translation>
+<translation id="4658638640878098064">ಮೇಲಿನ ಎಡಭಾಗದಲ್ಲಿ ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರದಲ್ಲಿ ಸಾಕಷ್ಟು ದೋಷಗಳಿವೆ. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
 <translation id="467809019005607715">Google ಸ್ಲೈಡ್‌ಗಳು</translation>
@@ -710,6 +746,7 @@
 <translation id="4756388243121344051">&amp;ಇತಿಹಾಸ</translation>
 <translation id="4758311279753947758">ಸಂಪರ್ಕ ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="4764776831041365478"><ph name="URL" /> ನಲ್ಲಿರುವ ವೆಬ್‌ಪುಟವು ತಾತ್ಕಾಲಿಕವಾಗಿ ಕಾರ್ಯನಿರ್ವಹಿಸದೇ ಇರಬಹುದು ಅಥವಾ ಅದನ್ನು ಶಾಶ್ವತವಾಗಿ ಹೊಸ ವೆಬ್ ವಿಳಾಸಕ್ಕೆ ಸರಿಸಲಾಗಿರಬಹುದು.</translation>
+<translation id="4766713847338118463">ಕೆಳಭಾಗದಲ್ಲಿ ಎರಡು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="4771973620359291008">ಅಪರಿಚಿತ ದೋಷವೊಂದು ಎದುರಾಗಿದೆ.</translation>
 <translation id="4780900888022378816">ನಿಮ್ಮ ಸಾಧನವನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ ಮತ್ತು ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="ACCOUNT_DOMAIN" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾಗುತ್ತಿದೆ.</translation>
 <translation id="4785689107224900852">ಈ ಟ್ಯಾಬ್‌ಗೆ ಬದಲಾಯಿಸಿ</translation>
@@ -732,6 +769,7 @@
 <translation id="4880827082731008257">ಹುಡುಕಾಟ ಇತಿಹಾಸ</translation>
 <translation id="4881695831933465202">ತೆರೆ</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">ಮೇಲಿನ ಬಲಭಾಗದಲ್ಲಿ ತೂತು ಮಾಡು</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{ಮತ್ತು 1 ಹೆಚ್ಚಿನ ವೆಬ್ ಪುಟ}one{ಮತ್ತು # ಹೆಚ್ಚಿನ ವೆಬ್ ಪುಟಗಳು}other{ಮತ್ತು # ಹೆಚ್ಚಿನ ವೆಬ್ ಪುಟಗಳು}}</translation>
 <translation id="4923417429809017348">ಗೊತ್ತಿಲ್ಲದ ಭಾಷೆಯಿಂದ <ph name="LANGUAGE_LANGUAGE" /> ಗೆ ಈ ಪುಟವನ್ನು ಭಾಷಾಂತರಿಸಲಾಗಿದೆ</translation>
 <translation id="4923459931733593730">ಪಾವತಿ</translation>
@@ -743,6 +781,7 @@
 <translation id="495170559598752135">ಕ್ರಿಯೆಗಳು</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">ಪಟ್ಟಿಯನ್ನು ವಿಸ್ತರಿಸಿ</translation>
+<translation id="4973922308112707173">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="4974590756084640048">ಎಚ್ಚರಿಕೆಗಳನ್ನು ಮರುಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4984339528288761049">Prc5 (Envelope)</translation>
 <translation id="4989163558385430922">ಎಲ್ಲವನ್ನೂ ನೋಡಿ</translation>
@@ -770,6 +809,7 @@
 <translation id="5087286274860437796">ಈ ಸಮಯದಲ್ಲಿ ಸರ್ವರ್‌ನ ಪ್ರಮಾಣಪತ್ರ ಮಾನ್ಯವಾಗಿಲ್ಲ.</translation>
 <translation id="5087580092889165836">ಕಾರ್ಡ್ ಸೇರಿಸಿ</translation>
 <translation id="5089810972385038852">ರಾಜ್ಯ</translation>
+<translation id="5093232627742069661">ಝೆಡ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="5094747076828555589">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವು Chromium ಮೂಲಕ ವಿಶ್ವಾಸಾರ್ಹವಾಗಿಲ್ಲ. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
 <translation id="5095208057601539847">ಪ್ರಾಂತ್ಯ</translation>
 <translation id="5097099694988056070">CPU/RAM ಬಳಕೆ ರೀತಿಯ ಸಾಧನದ ಅಂಕಿಅಂಶಗಳು</translation>
@@ -806,6 +846,9 @@
 <translation id="5251803541071282808">ಕ್ಲೌಡ್</translation>
 <translation id="5252000469029418751">C7 (Envelope)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">ಪಾವತಿ ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
+<translation id="5266128565379329178">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಬೈಂಡ್ ಮಾಡು</translation>
+<translation id="5269225904387178860">ಕೆಳಭಾಗದಲ್ಲಿ ನಾಲ್ಕು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="5269999699920406580">ಸಿಸ್ಟಮ್‌ನಾದ್ಯಂತ ಅನ್ವಯವಾಗುವ ವೈಶಿಷ್ಟ್ಯಗಳನ್ನು ಮಾಲೀಕರಿಂದ ಮಾತ್ರ ಹೊಂದಿಸಬಹುದು: <ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">ಎಚ್ಚರಿಕೆ: ಈ ಕಾರ್ಯನೀತಿಯನ್ನು PolicyDictionaryMultipleSourceMergeList ಕಾರ್ಯನೀತಿಯಲ್ಲಿ ನಿರ್ದಿಷ್ಟಪಡಿಸಿರುವಂತೆ ವಿಲೀನಗೊಳಿಸಲಾಗಿಲ್ಲ ಏಕೆಂದರೆ ಅದು ವಿಲೀನಗೊಳಿಸಬಹುದಾದ ನಿಘಂಟಿನ ಕಾರ್ಯನೀತಿಗಳ ಭಾಗವಾಗಿಲ್ಲ.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -818,6 +861,7 @@
 <translation id="5300589172476337783">ಪ್ರದರ್ಶಿಸಿ</translation>
 <translation id="5308380583665731573">ಸಂಪರ್ಕಿಸು</translation>
 <translation id="5308689395849655368">ಕ್ರ‍್ಯಾಶ್‌‌ ವರದಿಯನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ.</translation>
+<translation id="5314967030527622926">ಕಿರುಹೊತ್ತಿಗೆ ತಯಾರಕ</translation>
 <translation id="5317780077021120954">ಉಳಿಸು</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" /> ಗಳ <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">ಸಂಪರ್ಕ ಮಾಹಿತಿ ಆಯ್ಕೆಮಾಡಿ</translation>
@@ -833,6 +877,7 @@
 <translation id="5384855140246857529">ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳನ್ನು ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಬಳಸಲು, ಸೈನ್ ಇನ್ ಮಾಡಿ ಮತ್ತು ಸಿಂಕ್ ಆನ್ ಮಾಡಿ.</translation>
 <translation id="5386426401304769735">ಈ ಸೈಟ್‌ಗೆ ಪ್ರಮಾಣಪತ್ರ ಸರಣಿಯು SHA-1 ಬಳಸಿಕೊಂಡು ಸಹಿ ಮಾಡಲಾದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಒಳಗೊಂಡಿರುತ್ತದೆ.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">ಬಲಭಾಗದ ಅಂಚನ್ನು ಹೊಲಿ</translation>
 <translation id="540969355065856584">ಈ ಸರ್ವರ್ <ph name="DOMAIN" /> ಆಗಿದೆ ಎಂಬುದನ್ನು ಸಾಬೀತುಪಡಿಸಲು ಸಾಧ್ಯವಾಗಲಿಲ್ಲ; ಈ ಸಮಯದಲ್ಲಿ ಅದರ ಸುರಕ್ಷತಾ ಪ್ರಮಾಣಪತ್ರವು ಮಾನ್ಯವಾಗಿಲ್ಲ. ಇದು ತಪ್ಪು ಕಾನ್ಫಿಗರೇಶನ್‌ನಿಂದ ಅಥವಾ ಆಕ್ರಮಣಕಾರರು ನಿಮ್ಮ ಸಂಪರ್ಕದಲ್ಲಿ ಒಳನುಸುಳಿರುವುದರಿಂದ ಆಗಿರಬಹುದು.</translation>
 <translation id="5421136146218899937">ಬ್ರೌಸಿಂಗ್ ಡೇಟಾವನ್ನು ತೆರವುಗೊಳಿಸಿ...</translation>
 <translation id="5430298929874300616">ಬುಕ್‌ಮಾರ್ಕ್‌ ತೆಗೆದುಹಾಕಿ</translation>
@@ -858,6 +903,7 @@
 <translation id="5510766032865166053">ಈ ಫೈಲನ್ನು ಬೇರೆಡೆಗೆ ಸರಿಸಿರಬಹುದು ಇಲ್ಲವೇ ಅಳಿಸಿರಬಹುದು.</translation>
 <translation id="5523118979700054094">ನೀತಿ ಹೆಸರು</translation>
 <translation id="552553974213252141">ಪಠ್ಯವನ್ನು ಸರಿಯಾಗಿ ಪ್ರತ್ಯೇಕಿಸಲಾಗಿದೆಯೇ?</translation>
+<translation id="55293785478302737">ಅಂಚನ್ನು ಹೊಲಿ</translation>
 <translation id="553484882784876924">Prc6 (Envelope)</translation>
 <translation id="5540224163453853">ವಿನಂತಿಸಿದ ಲೇಖನವನ್ನು ಹುಡುಕಲು ಸಾಧವಾಗಲಿಲ್ಲ.</translation>
 <translation id="5541546772353173584">ಇಮೇಲ್ ಸೇರಿಸಿ</translation>
@@ -926,6 +972,7 @@
 <translation id="5893752035575986141">ಕ್ರೆಡಿಟ್‌ ಕಾರ್ಡ್‌ಗಳನ್ನು ಸಮ್ಮತಿಸಲಾಗಿದೆ.</translation>
 <translation id="5895138241574237353">ಮರುಪ್ರಾರಂಭಿಸಿ</translation>
 <translation id="5901630391730855834">ಹಳದಿ</translation>
+<translation id="5905445707201418379"><ph name="ORIGIN" /> ನ ಮೂಲ ಕಾರ್ಯನೀತಿಗೆ ಅನುಗುಣವಾಗಿ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (ಸಿಂಕ್‌ ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="5916664084637901428">ಆನ್‌</translation>
 <translation id="59174027418879706">ಸಕ್ರಿಯಗೊಳಿಸಲಾಗಿದೆ</translation>
@@ -944,6 +991,7 @@
 <translation id="598637245381783098">ಪಾವತಿ ಅಪ್ಲಿಕೇಶನ್ ತೆರೆಯಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="5989320800837274978">ಹೊಂದಿಸಿದ ಪ್ರಾಕ್ಸಿ ಸರ್ವರ್‌ಗಳು ಆಗಲಿ ಅಥವಾ .pac ಸ್ಕ್ರಿಪ್ಟ್ URL ಅನ್ನು ನಿರ್ದಿಷ್ಟಪಡಿಸಿಲ್ಲ.</translation>
 <translation id="5990559369517809815">ಸರ್ವರ್‌ಗಳ ವಿನಂತಿಗಳನ್ನು ವಿಸ್ತರಣೆಯಿಂದ ನಿರ್ಬಂಧಿಸಲಾಗಿದೆ.</translation>
+<translation id="5992691462791905444">ಇಂಜಿನಿಯರಿಂಗ್ ಝೆಡ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />' ಗಾಗಿ <ph name="RESULT_COUNT" /> ಫಲಿತಾಂಶಗಳು</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">ವರ್ಷ</translation>
@@ -952,8 +1000,11 @@
 <translation id="6017850046339264347"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> ನಲ್ಲಿನ ದಾಳಿಕೋರರು ವಂಚನೆಯ ಅಪ್ಲಿಕೇಶನ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿ, ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಬಳಸಬಹುದಾದ ಬೇರೆ ಯಾವುದಾದರೂ ಮಾಹಿತಿ ಅಥವಾ ಡೇಟಾ ಸಂಗ್ರಹಿಸುವ ಸಾಧ್ಯವಿದೆ. <ph name="BEGIN_LEARN_MORE_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (ಸಿಂಕ್‌ ಮಾಡಲಾಗಿದೆ)</translation>
 <translation id="6027201098523975773">ಹೆಸರು ನಮೂದಿಸಿ</translation>
+<translation id="603068602130820122">ಬಲಭಾಗದಲ್ಲಿ ಎರಡು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
+<translation id="6032955021262906325">ಎಡಗಡೆ ಬೈಂಡ್ ಮಾಡು</translation>
 <translation id="6034000775414344507">ತಿಳಿ ಬೂದು</translation>
 <translation id="6034283069659657473">10x14 (Envelope)</translation>
+<translation id="6034514109191629503">ಅಕಾರ್ಡಿಯನ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="6039846035001940113">ಸಮಸ್ಯೆ ಮುಂದುವರಿದರೆ, ಸೈಟ್ ಮಾಲೀಕರನ್ನು ಸಂಪರ್ಕಿಸಿ.</translation>
 <translation id="6040143037577758943">ಮುಚ್ಚಿರಿ</translation>
 <translation id="6044573915096792553">ಗಾತ್ರ 12</translation>
@@ -964,12 +1015,14 @@
 <translation id="6058977677006700226">ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿಯೂ ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳನ್ನು ಬಳಸಬೇಕೇ?</translation>
 <translation id="6059925163896151826">USB ಸಾಧನಗಳು</translation>
 <translation id="6060009363608157444">ಅಮಾನ್ಯ DnsOverHttps ಮೋಡ್.</translation>
+<translation id="6064217302520318294">ಸ್ಕ್ರೀನ್ ಲಾಕ್</translation>
 <translation id="6080696365213338172">ನಿರ್ವಾಹಕರು-ಒದಗಿಸಿದ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಬಳಸಿಕೊಂಡು ನೀವು ವಿಷಯವನ್ನು ಪ್ರವೇಶಿಸಿರುವಿರಿ. <ph name="DOMAIN" /> ಗೆ ನೀವು ಒದಗಿಸುವ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ತಡೆಹಿಡಿಯಬಹುದಾಗಿದೆ.</translation>
 <translation id="6094273045989040137">ಟಿಪ್ಪಣಿ</translation>
 <translation id="610911394827799129">ನಿಮ್ಮ Google ಖಾತೆಯು <ph name="BEGIN_LINK" />history.google.com<ph name="END_LINK" /> ನಲ್ಲಿ ಇತರ ವಿಧಗಳ ಬ್ರೌಸಿಂಗ್ ಇತಿಹಾಸವನ್ನು ಹೊಂದಿರಬಹುದು</translation>
 <translation id="6132597952260690497">ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಿರುವ ವಿಸ್ತರಣೆಗಳು ಮತ್ತು ಪ್ಲಗ್ಇನ್‌ಗಳ ಕುರಿತು ಮಾಹಿತಿ</translation>
 <translation id="6146055958333702838">ಯಾವುದೇ ಕೇಬಲ್‌ಗಳನ್ನು ಪರಿಶೀಲಿಸಿ. ನೀವು ಬಳಸುತ್ತಿರಬಹುದಾದ ಯಾವುದೇ ರೂಟರ್‌ಗಳು, ಮೋಡೆಮ್‌ಗಳು ಅಥವಾ ಇತರ ನೆಟ್‌ವರ್ಕ್ ಸಾಧನಗಳನ್ನು ರೀಬೂಟ್ ಮಾಡಿ.</translation>
 <translation id="614940544461990577">ಪ್ರಯತ್ನಿಸಿ:</translation>
+<translation id="6150036310511284407">ಎಡಭಾಗದಲ್ಲಿ ಮೂರು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="6151417162996330722">ಸರ್ವರ್ ಪ್ರಮಾಣಪತ್ರವು ತುಂಬಾ ಉದ್ದವಾದ ವಾಯಿದೆ ಅವಧಿಯನ್ನು ಹೊಂದಿದೆ.</translation>
 <translation id="6157877588268064908">ಶಿಪ್ಪಿಂಗ್ ವಿಧಾನಗಳು ಹಾಗೂ ಆವಶ್ಯಕತೆಗಳನ್ನು ನೋಡಲು, ಒಂದು ವಿಳಾಸವನ್ನು ಆಯ್ಕೆ ಮಾಡಿ</translation>
 <translation id="6165508094623778733">ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ</translation>
@@ -977,7 +1030,9 @@
 <translation id="6177128806592000436">ಈ ಸೈಟ್‌ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಸುರಕ್ಷಿತವಾಗಿಲ್ಲ</translation>
 <translation id="6203231073485539293">ನಿಮ್ಮ ಇಂಟರ್ನೆಟ್ ಸಂಪರ್ಕವನ್ನು ಪರಿಶೀಲಿಸಿ</translation>
 <translation id="6218753634732582820">Chromium ನಿಂದ ವಿಳಾಸವನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation>
+<translation id="622039917539443112">ಸಮಾನಾಂತರವಾಗಿ ಮಡಿಸು</translation>
 <translation id="6221345481584921695">Google ಸುರಕ್ಷಿತ ಬ್ರೌಸಿಂಗ್ ಇತ್ತೀಚೆಗೆ <ph name="SITE" /> ನಲ್ಲಿ <ph name="BEGIN_LINK" />ಮಾಲ್‌ವೇರ್ ಪತ್ತೆಹಚ್ಚಿದೆ<ph name="END_LINK" />. ಸಾಮಾನ್ಯವಾಗಿ ಸುರಕ್ಷಿತವಾಗಿರುವ ವೆಬ್‌ಸೈಟ್‌ಗಳು ಕೆಲವೊಮ್ಮೆ ಮಾಲ್‌ವೇರ್ ಸೋಂಕಿಗೆ ತುತ್ತಾಗಿರುತ್ತವೆ. ದುರುದ್ದೇಶಪೂರಿತ ಸಂಗತಿಗಳು ಮಾಲ್‌ವೇರ್ ವಿತರಕರಾದ <ph name="SUBRESOURCE_HOST" /> ರಿಂದ ಬರುತ್ತವೆ.</translation>
+<translation id="6234122620015464377">ಪ್ರತಿ ಡಾಕ್ಯುಮೆಂಟ್ ನಂತರ ಟ್ರಿಮ್ ಮಾಡು</translation>
 <translation id="6240447795304464094">Google Pay ಲೋಗೋ</translation>
 <translation id="6251924700383757765">ಗೌಪ್ಯತಾ ನೀತಿ</translation>
 <translation id="6254436959401408446">ಈ ಪುಟವನ್ನು ತೆರೆಯಲು ಸಾಕಷ್ಟು ಮೆಮೊರಿ ಇಲ್ಲ</translation>
@@ -1003,17 +1058,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{ಒಂದೂ ಇಲ್ಲ}=1{1 ಪಾಸ್‌ವರ್ಡ್ (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು, ಅದನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}=2{2 ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು, ಅವುಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}one{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು, ಅವುಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}other{# ಪಾಸ್‌ವರ್ಡ್‌ಗಳು (<ph name="DOMAIN_LIST" /> ಗೆ ಸಂಬಂಧಿಸಿದ್ದು, ಅವುಗಳನ್ನು ಸಿಂಕ್ ಮಾಡಲಾಗಿದೆ)}}</translation>
 <translation id="6358450015545214790">ಇವುಗಳ ಅರ್ಥವೇನು?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">ಎಡಭಾಗದಲ್ಲಿ ಎರಡು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="6377268785556383139">'<ph name="SEARCH_TEXT" />' ಗಾಗಿ 1 ಫಲಿತಾಂಶ</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">ಮುಂದಕ್ಕೆ ಶುಲ್ಕವಿರುವ ಸಾಧ್ಯತೆಗಳಿವೆ</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{1 ಇತರ ಸಲಹೆ}one{# ಇತರ ಸಲಹೆಗಳು}other{# ಇತರ ಸಲಹೆಗಳು}}</translation>
 <translation id="6387754724289022810">ಮುಂದಿನ ಬಾರಿ ವೇಗವಾಗಿ ಪಾವತಿಸಲು, ನಿಮ್ಮ ಕಾರ್ಡ್‌ ಮತ್ತು ನಿಮ್ಮ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವನ್ನು Google ಖಾತೆಯಲ್ಲಿ ಮತ್ತು ಈ ಸಾಧನದಲ್ಲಿ ಉಳಿಸಿ.</translation>
+<translation id="6390200185239044127">ಅರ್ಧ ಝೆಡ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">ಈ ಕಾರ್ಯನೀತಿಯನ್ನು ತಡೆಹಿಡಿಯಲಾಗಿದೆ. ಇದರ ಬದಲಿಗೆ, ನೀವು <ph name="NEW_POLICY" /> ಕಾರ್ಯನೀತಿಯನ್ನು ಬಳಸಬೇಕು.</translation>
 <translation id="6404511346730675251">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳನ್ನು ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6406765186087300643">C0 (Envelope)</translation>
 <translation id="6410264514553301377"><ph name="CREDIT_CARD" /> ಗೆ ಮುಕ್ತಾಯ ದಿನಾಂಕ ಮತ್ತು ಸಿವಿಸಿ ಅನ್ನು ನಮೂದಿಸಿ</translation>
 <translation id="6415778972515849510">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಹಾಗೂ ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು, Chromium ನಿಮಗೆ ಸಹಾಯ ಮಾಡಬಲ್ಲದು.</translation>
+<translation id="6427730057873428458">ಗೇಟ್ ಮಾದರಿಯಲ್ಲಿ ಮಡಿಸು</translation>
 <translation id="6431585503458005759">ಸಂಗ್ರಹಿಸಬೇಡಿ</translation>
 <translation id="6433490469411711332">ಸಂಪರ್ಕ ಮಾಹಿತಿ ಎಡಿಟ್ ಮಾಡಿ</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> ಸಂಪರ್ಕಗೊಳ್ಳಲು ನಿರಾಕರಿಸಿದೆ.</translation>
@@ -1024,6 +1082,7 @@
 <translation id="6446608382365791566">ಇನ್ನಷ್ಟು ಮಾಹಿತಿಯನ್ನು ಸೇರಿಸಿ</translation>
 <translation id="6447842834002726250">ಕುಕೀಸ್</translation>
 <translation id="6451458296329894277">ಮರುಸಲ್ಲಿಕೆ ಫಾರ್ಮ್ ಅನ್ನು ಖಚಿತಪಡಿಸಿಕೊಳ್ಳಿ</translation>
+<translation id="6457206614190510200">ಸ್ಯಾಡಲ್ ಮಾದರಿಯ ಹೊಲಿಗೆ ಹಾಕು</translation>
 <translation id="6465306955648956876">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ...</translation>
 <translation id="647261751007945333">ಸಾಧನ ನೀತಿಗಳು</translation>
 <translation id="6476284679642588870">ಪಾವತಿ ವಿಧಾನಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
@@ -1038,9 +1097,11 @@
 <translation id="6529602333819889595">&amp;ಅಳಿಸುವುದನ್ನು ಮತ್ತೆಮಾಡು</translation>
 <translation id="6534179046333460208">ಭೌತಿಕ ವೆಬ್ ಸಲಹೆಗಳು</translation>
 <translation id="6545864417968258051">ಬ್ಲೂಟೂತ್ ಸ್ಕ್ಯಾನಿಂಗ್</translation>
+<translation id="6547208576736763147">ಎಡಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="6554795675067793129">ನಿಮ್ಮ ಖಾತೆಯನ್ನು <ph name="ENROLLMENT_DOMAIN" /> ನಿರ್ವಹಿಸುತ್ತಿದೆ.</translation>
 <translation id="6556866813142980365">ಪುನಃ ಮಾಡು</translation>
 <translation id="6569060085658103619">ನೀವು ವಿಸ್ತರಣೆ ಪುಟವನ್ನು ವೀಕ್ಷಿಸುತ್ತಿರುವಿರಿ</translation>
+<translation id="6573200754375280815">ಬಲಭಾಗದಲ್ಲಿ ಎರಡು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
 <translation id="6579990219486187401">ತಿಳಿ ಗುಲಾಬಿ</translation>
 <translation id="6583674473685352014">B6 (Envelope)</translation>
@@ -1059,6 +1120,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{ಯಾವುದೂ ಇಲ್ಲ}=1{1 ಸೈಟ್‌‍ನಿಂದ (ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುವುದಿಲ್ಲ)}one{# ಸೈಟ್‌ಗಳಿಂದ (ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುವುದಿಲ್ಲ)}other{# ಸೈಟ್‌ಗಳಿಂದ (ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ನಿಮ್ಮನ್ನು ಸೈನ್ ಔಟ್ ಮಾಡುವುದಿಲ್ಲ)}}</translation>
 <translation id="6652101503459149953">Windows Hello ಬಳಸಿ</translation>
 <translation id="6657585470893396449">ಪಾಸ್‌ವರ್ಡ್</translation>
+<translation id="6665553082534466207">ಬಲಭಾಗದಲ್ಲಿ ಮೂರು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="6670613747977017428">ಸುರಕ್ಷತೆಗೆ ಹಿಂತಿರುಗಿ.</translation>
 <translation id="6671697161687535275">Chromium ನಿಂದ ಫಾರ್ಮ್ ಸಲಹೆಯನ್ನು ತೆಗೆದುಹಾಕುವುದೇ?</translation>
 <translation id="6685834062052613830">ಸೈನ್‌ ಔಟ್‌ ಮಾಡಿ ಹಾಗೂ ಸೆಟಪ್ ಪೂರ್ಣಗೊಳಿಸಿ</translation>
@@ -1278,6 +1340,7 @@
 <translation id="7764225426217299476">ವಿಳಾಸ ಸೇರಿಸಿ</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">ಪ್ರಿಫೆಕ್ಚರ್‌‌</translation>
+<translation id="7791196057686275387">ಬೇಲ್</translation>
 <translation id="7791543448312431591">ಸೇರಿಸು</translation>
 <translation id="7800304661137206267">ಸಂದೇಶದ ದೃಢೀಕರಣಕ್ಕಾಗಿ <ph name="MAC" /> ಮತ್ತು <ph name="KX" /> ನಂತೆ ಕೀಲಿ ವಿನಿಮಯದ ಯಾಂತ್ರಿಕತೆ ಜೊತೆಗೆ <ph name="CIPHER" /> ಅನ್ನು ಬಳಸಿ ಸಂಪರ್ಕವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ.</translation>
 <translation id="7802523362929240268">ಸೈಟ್‌ ಕಾನೂನುಬದ್ಧವಾಗಿದೆ</translation>
@@ -1298,22 +1361,27 @@
 <translation id="7882421473871500483">ಕಂದು</translation>
 <translation id="7887683347370398519">ನಿಮ್ಮ CVC ಅನ್ನು ಪರಿಶೀಲಿಸಿ ಹಾಗೂ ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="7904208859782148177">C3 (Envelope)</translation>
+<translation id="7932579305932748336">ಹಚ್ಚು</translation>
 <translation id="79338296614623784">ಮಾನ್ಯವಾದ ಫೋನ್ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ</translation>
+<translation id="7934052535022478634">ಪಾವತಿ ಪೂರ್ಣಗೊಂಡಿದೆ</translation>
 <translation id="7935318582918952113">DOM ಡಿಸ್ಟಿಲರ್</translation>
 <translation id="7937554595067888181"><ph name="EXPIRATION_DATE_ABBR" /> ದಿನಾಂಕದಂದು ಅವಧಿ ಮೀರುತ್ತದೆ</translation>
 <translation id="7938958445268990899">ಸರ್ವರ್‌ನ ಪ್ರಮಾಣಪತ್ರವನ್ನು ಇನ್ನೂ ಮಾನ್ಯಗೊಳಿಸಿಲ್ಲ.</translation>
 <translation id="7942349550061667556">ಕೆಂಪು</translation>
 <translation id="7947285636476623132">ನಿಮ್ಮ ಮುಕ್ತಾಯ ವರ್ಷವನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಪುನಃ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="7951415247503192394">(32-ಬಿಟ್)</translation>
+<translation id="7953569069500808819">ಮೇಲ್ಭಾಗದ ಅಂಚನ್ನು ಹೊಲಿ</translation>
 <translation id="7956713633345437162">ಮೊಬೈಲ್ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
 <translation id="7961015016161918242">ಎಂದಿಗೂ ಇಲ್ಲ</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">ಬೈಂಡ್ ಮಾಡು</translation>
 <translation id="7995512525968007366">ನಿರ್ದಿಷ್ಟಪಡಿಸಲಾಗಿಲ್ಲ</translation>
 <translation id="800218591365569300">ಮೆಮೊರಿ ಮುಕ್ತಗೊಳಿಸಲು ಇತರ ಟ್ಯಾಬ್‌ಗಳನ್ನು ಅಥವಾ ಪ್ರೋಗ್ರಾಂಗಳನ್ನು ಮುಚ್ಚಲು ಪ್ರಯತ್ನಿಸಿ.</translation>
 <translation id="8004582292198964060">ಬ್ರೌಸರ್</translation>
 <translation id="8009225694047762179">ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ನಿರ್ವಹಿಸಿ</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{ಈ ಕಾರ್ಡ್ ಮತ್ತು ಅದರ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸವನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ. ನೀವು <ph name="USER_EMAIL" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಅದನ್ನು ಬಳಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.}one{ಈ ಕಾರ್ಡ್‌ಗಳು ಮತ್ತು ಅವುಗಳ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ. ನೀವು <ph name="USER_EMAIL" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಅವುಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.}other{ಈ ಕಾರ್ಡ್‌ಗಳು ಮತ್ತು ಅವುಗಳ ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸಗಳನ್ನು ಉಳಿಸಲಾಗುತ್ತದೆ. ನೀವು <ph name="USER_EMAIL" /> ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿದಾಗ ಅವುಗಳನ್ನು ಬಳಸಲು ನಿಮಗೆ ಸಾಧ್ಯವಾಗುತ್ತದೆ.}}</translation>
 <translation id="8025119109950072390">ಈ ಸೈಟ್‌ನಲ್ಲಿನ ಆಕ್ರಮಣಕಾರರು ಸಾಫ್ಟ್‌ವೇರ್ ಸ್ಥಾಪಿಸುವಿಕೆ ಅಥವಾ ನಿಮ್ಮ ವೈಯಕ್ತಿಕ ಮಾಹಿತಿಯನ್ನು ಬಹಿರಂಗ ಪಡಿಸುವಂತಹ ಅಪಾಯಕಾರಿಯಾಗಿ ಏನಾದರೂ ಮಾಡುವಂತಹ ಮೋಸವನ್ನು ಮಾಡಬಹುದು (ಉದಾಹರಣೆಗೆ, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು, ಫೋನ್‌ ಸಂಖ್ಯೆಗಳು ಅಥವಾ ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು).</translation>
+<translation id="8028960012888758725">ಕೆಲಸದ ನಂತರ ಟ್ರಿಮ್ ಮಾಡಿ</translation>
 <translation id="8034522405403831421">ಈ ಪುಟವು <ph name="SOURCE_LANGUAGE" /> ನಲ್ಲಿ ಇದೆ. ಇದನ್ನು <ph name="TARGET_LANGUAGE" /> ಗೆ ಅನುವಾದಿಸುವುದೇ?</translation>
 <translation id="8035152190676905274">ಪೆನ್</translation>
 <translation id="8037117624646282037">ಸಾಧನವನ್ನು ಇತ್ತೀಚೆಗೆ ಯಾರೆಲ್ಲಾ ಬಳಸಿದ್ದಾರೆ</translation>
@@ -1328,6 +1396,7 @@
 <translation id="8074253406171541171">10x13 (Envelope)</translation>
 <translation id="8078141288243656252">ಡಾಕ್ಯುಮೆಂಟ್‌ ಅನ್ನು ತಿರುಗಿಸಿದಾಗ ಟಿಪ್ಪಣಿ ಮಾಡಲು ಸಾಧ್ಯವಿಲ್ಲ</translation>
 <translation id="8079031581361219619">ಸೈಟ್ ಅನ್ನು ಪುನಃ ಲೋಡ್ ಮಾಡಬೇಕೇ?</translation>
+<translation id="8086971161893892807">ಡ್ರಾಫ್ಟ್‌</translation>
 <translation id="8088680233425245692">ಲೇಖನವನ್ನು ವೀಕ್ಷಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="808894953321890993">ಪಾಸ್‌ವರ್ಡ್ ಬದಲಿಸಿ</translation>
 <translation id="8090403583893450254">ಗಾತ್ರ 20</translation>
@@ -1343,6 +1412,7 @@
 <translation id="8131740175452115882">ದೃಢೀಕರಿಸು</translation>
 <translation id="8149426793427495338">ನಿಮ್ಮ ಕಂಪ್ಯೂಟರ್ ನಿದ್ರಾವಸ್ಥೆಗೆ ಹೋಗಿದೆ.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> ನಲ್ಲಿನ ಫೈಲ್ ಓದುವಂತಿರುವುದಿಲ್ಲ. ಇದನ್ನು ತೆಗೆದುಹಾಕಬಹುದು, ಚಲಿಸಬಹುದು, ಅಥವಾ ಫೈಲ್ ಅನುಮತಿಗಳು ಪ್ರವೇಶವನ್ನು ತಡೆಗಟ್ಟುತ್ತಿರಬಹುದು.</translation>
+<translation id="8163866351304776260">ಎಡಭಾಗದಲ್ಲಿ ನಾಲ್ಕು ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="8175796834047840627">ನೀವು ಸೈನ್ ಇನ್ ಮಾಡಿರುವ ಕಾರಣದಿಂದಾಗಿ, ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿ ನಿಮ್ಮ ಕಾರ್ಡ್‌ಗಳನ್ನು ಉಳಿಸಲು Chrome ಅವಕಾಶ ನೀಡುತ್ತಿದೆ. ಸೆಟ್ಟಿಂಗ್‌ಗಳಲ್ಲಿ ನೀವು ಈ ವರ್ತನೆಯನ್ನು ಬದಲಿಸಬಹುದು.</translation>
 <translation id="8184538546369750125">ಜಾಗತಿಕ ಡಿಫಾಲ್ಟ್ ಬಳಸಿ (ಅನುಮತಿಸಿ)</translation>
 <translation id="8194797478851900357">&amp;ಸರಿಸುವುದನ್ನು ರದ್ದುಗೊಳಿಸು</translation>
@@ -1365,6 +1435,7 @@
 <translation id="8253091569723639551">ಬಿಲ್ಲಿಂಗ್ ವಿಳಾಸ ಅಗತ್ಯವಿದೆ</translation>
 <translation id="825929999321470778">ಉಳಿಸಿದ ಎಲ್ಲ ಪಾಸ್‌ವರ್ಡ್‌ಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="8261506727792406068">ಅಳಿಸಿ</translation>
+<translation id="8262952874573525464">ಕೆಳಭಾಗದ ಅಂಚನ್ನು ಹೊಲಿ</translation>
 <translation id="8267698848189296333"><ph name="USERNAME" /> ನಂತೆ ಸೈನ್ ಇನ್ ಮಾಡಲಾಗುತ್ತಿದೆ</translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">ಸೈನ್ ಇನ್</translation>
@@ -1373,6 +1444,7 @@
 <translation id="8293206222192510085">ಬುಕ್‌ಮಾರ್ಕ್ ಸೇರಿಸು</translation>
 <translation id="8294431847097064396">ಮೂಲ</translation>
 <translation id="8298115750975731693">ನೀವು ಬಳಸುತ್ತಿರುವ ವೈ-ಫೈ (<ph name="WIFI_NAME" />) ಗೆ ನೀವು <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" /> ಅನ್ನು ಭೇಟಿ ನೀಡುವ ಅಗತ್ಯವಿದೆ.</translation>
+<translation id="830498451218851433">ಅರ್ಧ ಮಡಿಸು</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">ನೆಟ್‌ವರ್ಕ್ ಸಂಪರ್ಕದಲ್ಲಿನ ಸಮಸ್ಯೆಯಿಂದಾಗಿ ಭಾಷಾಂತರವು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> ಗೆ ಪ್ರವೇಶವನ್ನು ನಿರಾಕರಿಸಲಾಗಿದೆ</translation>
@@ -1401,6 +1473,7 @@
 <translation id="8461694314515752532">ನಿಮ್ಮ ಸ್ವಂತ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್‌ ಬಳಸಿಕೊಂಡು ಸಿಂಕ್ ಮಾಡಿದ ಡೇಟಾವನ್ನು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಿ</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್}one{# ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು}other{# ಕ್ರೆಡಿಟ್ ಕಾರ್ಡ್‌ಗಳು}}</translation>
 <translation id="8473863474539038330">ವಿಳಾಸಗಳು ಮತ್ತು ಇನ್ನಷ್ಟು</translation>
+<translation id="8479754468255770962">ಕೆಳಗಿನ ಎಡಭಾಗದಲ್ಲಿ ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="8483780878231876732">ನಿಮ್ಮ Google ಖಾತೆಯಿಂದ ಕಾರ್ಡ್‌ಗಳನ್ನು ಬಳಸಲು, Chrome ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ</translation>
 <translation id="8488350697529856933">ಇದಕ್ಕೆ ಅನ್ವಯಿಸಲಾಗುತ್ತದೆ</translation>
 <translation id="8498891568109133222">ಪ್ರತಿಕ್ರಿಯಿಸಲು <ph name="HOST_NAME" /> ಹೆಚ್ಚು ಸಮಯ ತೆಗೆದುಕೊಂಡಿದೆ.</translation>
@@ -1408,6 +1481,7 @@
 <translation id="8503813439785031346">ಬಳಕೆದಾರರಹೆಸರು</translation>
 <translation id="8508648098325802031">ಹುಡುಕಾಟದ ಐಕಾನ್</translation>
 <translation id="8522552481199248698">ನಿಮ್ಮ Google ಖಾತೆಯನ್ನು ಸಂರಕ್ಷಿಸಲು ಮತ್ತು ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ಬದಲಾಯಿಸಲು Chrome ಸಹಾಯ ಮಾಡಬಲ್ಲದು.</translation>
+<translation id="8542014550340843547">ಕೆಳಭಾಗದಲ್ಲಿ ಮೂರು ಸ್ಟೇಪಲ್ ಹಾಕು</translation>
 <translation id="8543181531796978784">ನೀವು <ph name="BEGIN_ERROR_LINK" />ಪತ್ತೆ ಹಚ್ಚುವಿಕೆ ಸಮಸ್ಯೆಯನ್ನು ವರದಿ ಮಾಡಬಹುದು<ph name="END_ERROR_LINK" /> ಅಥವಾ ನಿಮ್ಮ ಭದ್ರತೆಯ ಅಪಾಯಗಳ ಕುರಿತು ನಿಮಗೆ ಅರ್ಥವಾಗಿದ್ದರೆ, <ph name="BEGIN_LINK" />ಈ ಅಸುರಕ್ಷಿತ ಸೈಟ್‌ಗೆ ಭೇಟಿ ನೀಡಿ<ph name="END_LINK" />.</translation>
 <translation id="8553075262323480129">ಪುಟದ ಭಾಷೆಯನ್ನು ಗುರುತಿಸಲು ಅಸಾಧ್ಯವಾದ ಕಾರಣ ಭಾಷಾಂತರವು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="8557066899867184262">ನಿಮ್ಮ ಕಾರ್ಡ್ ಹಿಂಬದಿಯಲ್ಲಿ CVC ಇರುತ್ತದೆ.</translation>
@@ -1430,6 +1504,7 @@
 <translation id="8703575177326907206"><ph name="DOMAIN" /> ಗೆ ನಿಮ್ಮ ಸಂಪರ್ಕವು ಎನ್‌ಕ್ರಿಪ್ಟ್ ಆಗಿಲ್ಲ.</translation>
 <translation id="8718314106902482036">ಪಾವತಿ ಪೂರ್ಣಗೊಂಡಿಲ್ಲ</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, ಹುಡುಕಾಟ ಸಲಹೆ</translation>
+<translation id="8719528812645237045">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಅನೇಕ ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="8723954843026426558">ನಾನು <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" />ಡೊಮೇನ್‌ನ ನಿಯಮಗಳು ಮತ್ತು ನಿಬಂಧನೆಗಳು, ಗೌಪ್ಯತಾ ಕಾರ್ಯನೀತಿ, ಮತ್ತು ಹಿಂತೆಗೆದುಕೊಳ್ಳುವ ಹಕ್ಕಿಗೆ ಸಮ್ಮತಿಸುತ್ತೇನೆ.</translation>
 <translation id="8725066075913043281">ಮತ್ತೆ ಪ್ರಯತ್ನಿಸಿ</translation>
 <translation id="8728672262656704056">ನೀವು ಅದೃಶ್ಯರಾಗಿರುವಿರಿ</translation>
@@ -1448,6 +1523,7 @@
 <translation id="8792621596287649091">ನಿಮ್ಮ <ph name="ORG_NAME" /> ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು ಅಥವಾ ಗುರುತು ಕಳ್ಳತನಕ್ಕೆ ಒಳಗಾಗಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಇದೀಗ ಬದಲಾಯಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="8800988563907321413">ನಿಮ್ಮ ಸಮೀಪದ ವೆಬ್ ಪುಟದ ಸಲಹೆಗಳು ಇಲ್ಲಿ ಗೋಚರಿಸುತ್ತವೆ</translation>
 <translation id="8805819170075074995">ಪಟ್ಟಿ ನಮೂದು "<ph name="LANGUAGE_ID" />": ಈ ನಮೂದನ್ನು SpellcheckLanguage ಕಾರ್ಯನೀತಿಯಲ್ಲಿ ಸಹ ಸೇರಿಸಿರುವ ಕಾರಣ, ಇದನ್ನು ನಿರ್ಲಕ್ಷಿಸಲಾಗಿದೆ.</translation>
+<translation id="8807160976559152894">ಪ್ರತಿ ಪುಟದ ನಂತರ ಟ್ರಿಮ್ ಮಾಡಿ</translation>
 <translation id="8820817407110198400">ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು</translation>
 <translation id="883848425547221593">ಇತರ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು:</translation>
 <translation id="884264119367021077">ಶಿಪ್ಪಿಂಗ್‌ ವಿಳಾಸ</translation>
@@ -1455,6 +1531,7 @@
 <translation id="885730110891505394">Google ಜೊತೆಗೆ ಹಂಚಿಕೊಳ್ಳುವುದು</translation>
 <translation id="8858065207712248076">ನೀವು ಇತರ ಸೈಟ್‌ಗಳಲ್ಲಿ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಮರುಬಳಕೆ ಮಾಡಿದ್ದಲ್ಲಿ Chrome ನಿಮ್ಮ <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> ಪಾಸವರ್ಡ್ ಅನ್ನು ಮರುಹೊಂದಿಸಲು ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ.</translation>
 <translation id="8866481888320382733">ನೀತಿಯ ಸೆಟ್ಟಿಂಗ್‌ಗಳನ್ನು ಪಾಸ್ ಮಾಡುವಲ್ಲಿ ದೋಷ</translation>
+<translation id="8866928039507595380">ಮಡಿಸು</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">ಇತ್ತೀಚೆಗೆ ಮುಚ್ಚಿರುವುದು</translation>
 <translation id="8874824191258364635">ಮಾನ್ಯವಾದ ಕಾರ್ಡ್ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ</translation>
@@ -1462,6 +1539,7 @@
 <translation id="8903921497873541725">ಝೂಮ್ ಇನ್</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google ಖಾತೆ</translation>
+<translation id="892588693504540538">ಮೇಲಿನ ಬಲಭಾಗದಲ್ಲಿ ತೂತು ಮಾಡು</translation>
 <translation id="8931333241327730545">ಈ ಕಾರ್ಡನ್ನು ನಿಮ್ಮ Google ಖಾತೆನಲ್ಲಿ ಉಳಿಸಲು ಬಯಸುವಿರಾ?</translation>
 <translation id="8932102934695377596">ನಿಮ್ಮ ಗಡಿಯಾರ ಹಿಂದೆ ಇದೆ</translation>
 <translation id="893332455753468063">ಹೆಸರು ಸೇರಿಸಿ</translation>
@@ -1523,6 +1601,7 @@
 <translation id="9174917557437862841">ಟ್ಯಾಬ್ ಬದಲಿಸುವ ಬಟನ್, ಈ ಟ್ಯಾಬ್‌ಗೆ ಬದಲಾಯಿಸಲು Enter ಒತ್ತಿರಿ</translation>
 <translation id="9183302530794969518">Google ಡಾಕ್ಸ್‌</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> ಬೆಂಬಲಿತವಲ್ಲದ ಪ್ರೋಟೋಕಾಲ್ ಬಳಸುತ್ತಿದೆ.</translation>
+<translation id="9191834167571392248">ಕೆಳಗಿನ ಎಡಭಾಗದಲ್ಲಿ ತೂತುಗಳನ್ನು ಮಾಡು</translation>
 <translation id="9205078245616868884">ನಿಮ್ಮ ಡೇಟಾವನ್ನು ನಿಮ್ಮ ಸಿಂಕ್ ಪಾಸ್‌ಫ್ರೇಸ್‌ನೊಂದಿಗೆ ಎನ್‌ಕ್ರಿಪ್ಟ್ ಮಾಡಲಾಗಿದೆ. ಸಿಂಕ್ ಪ್ರಾರಂಭಿಸಲು ಅದನ್ನು ನಮೂದಿಸಿ.</translation>
 <translation id="9207861905230894330">ಲೇಖನವನ್ನು ಸೇರಿಸಲು ವಿಫಲವಾಗಿದೆ.</translation>
 <translation id="9215416866750762878">ಈ ಸೈಟ್‌ಗೆ ಸುರಕ್ಷಿತವಾಗಿ ಸಂಪರ್ಕಿಸುವ Chromeನ ಕಾರ್ಯವನ್ನು ಅಪ್ಲಿಕೇಶನ್‌ ಸ್ಥಗಿತಗೊಳಿಸಿದೆ</translation>
@@ -1533,7 +1612,9 @@
 <translation id="936602727769022409">ನಿಮ್ಮ Google ಖಾತೆಗೆ ನೀವು ಪ್ರವೇಶವನ್ನು ಕಳೆದುಕೊಳ್ಳಬಹುದು. ನಿಮ್ಮ ಪಾಸ್‌ವರ್ಡ್‌ ಅನ್ನು ಈಗಲೇ ಬದಲಾಯಿಸುವಂತೆ Chromium ಶಿಫಾರಸು ಮಾಡುತ್ತದೆ. ಸೈನ್ ಇನ್ ಮಾಡಲು ನಿಮ್ಮನ್ನು ಕೇಳಲಾಗುತ್ತದೆ.</translation>
 <translation id="939736085109172342">ಹೊಸ ಫೋಲ್ಡರ್</translation>
 <translation id="945855313015696284">ಕೆಳಗಿನ ಮಾಹಿತಿಯನ್ನು ಪರಿಶೀಲಿಸಿ ಮತ್ತು ಯಾವುದೇ ಅಮಾನ್ಯ ಕಾರ್ಡ್‌ಗಳನ್ನು ಅಳಿಸಿ</translation>
+<translation id="950736567201356821">ಮೇಲ್ಭಾಗದಲ್ಲಿ ಮೂರು ತೂತು ಮಾಡು</translation>
 <translation id="951104842009476243">ಸ್ವೀಕೃತ ಡೆಬಿಟ್ ಮತ್ತು ಪ್ರೀಪೇಯ್ಡ್ ಕಾರ್ಡ್‌ಗಳು</translation>
+<translation id="961663415146723894">ಕೆಳಭಾಗದಲ್ಲಿ ಬೈಂಡ್ ಮಾಡು</translation>
 <translation id="962484866189421427">ಈ ವಿಷಯವು ವಂಚಕ ಆ್ಯಪ್‌ಗಳನ್ನು ಇನ್‌ಸ್ಟಾಲ್ ಮಾಡಲು ಪ್ರಯತ್ನಿಸಬಹುದು. ಈ ಆ್ಯಪ್‌ಗಳು ಬೇರೆ ಯಾವುದರಂತೆಯೋ ಸೋಗು ಹಾಕುವ ಅಥವಾ ನಿಮ್ಮನ್ನು ಟ್ರ್ಯಾಕ್ ಮಾಡಲು ಬಳಸಬಹುದಾದ ಡೇಟಾವನ್ನು ಸಂಗ್ರಹಿಸುವ ಸಾಧ್ಯತೆಯಿದೆ. <ph name="BEGIN_LINK" />ಹೇಗಿದ್ದರೂ ತೋರಿಸಿ<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">ಅಧಿಕೃತವಾಗಿ ನಿರ್ಮಿಸಿ</translation>
 <translation id="973773823069644502">ವಿತರಣೆ ವಿಳಾಸವನ್ನು ಸೇರಿಸಿ</translation>
diff --git a/components/strings/components_strings_ko.xtb b/components/strings/components_strings_ko.xtb
index 6827304..0f3d574 100644
--- a/components/strings/components_strings_ko.xtb
+++ b/components/strings/components_strings_ko.xtb
@@ -1032,6 +1032,7 @@
 <translation id="6058977677006700226">모든 기기에서 카드를 사용하고 싶으신가요?</translation>
 <translation id="6059925163896151826">USB 기기</translation>
 <translation id="6060009363608157444">잘못된 DnsOverHttps 모드입니다.</translation>
+<translation id="6064217302520318294">화면 잠금</translation>
 <translation id="6080696365213338172">관리자 제공 인증서를 사용하여 콘텐츠에 액세스했습니다. 사용자가 <ph name="DOMAIN" />에 제공한 데이터가 관리자에 의해 차단될 수 있습니다.</translation>
 <translation id="6094273045989040137">주석 추가</translation>
 <translation id="610911394827799129">Google 계정의 내 활동(<ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />)에는 인터넷 방문 기록이 다른 형식으로 남아 있을 수도 있습니다</translation>
diff --git a/components/strings/components_strings_lt.xtb b/components/strings/components_strings_lt.xtb
index bddda40..ba763bd 100644
--- a/components/strings/components_strings_lt.xtb
+++ b/components/strings/components_strings_lt.xtb
@@ -557,7 +557,7 @@
     pateikęs politiką, jis peradresavo naršyklę į kitą vietą, todėl
     naršyklė negali vykdyti svetainės (<ph name="SITE" />) užklausos. Pradinę
     politiką gali naudoti svetainių operatoriai, siekdami konfigūruoti svetainės
-    saugą ir kitas nuosavybe.</translation>
+    saugą ir kitas nuosavybes.</translation>
 <translation id="3701427423622901115">Nustatymas iš naujo patvirtintas.</translation>
 <translation id="3704162925118123524">Naudojant šį tinklą gali būti prašoma apsilankyti prisijungimo puslapyje.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -1036,6 +1036,7 @@
 <translation id="6058977677006700226">Naudojate korteles visuose įrenginiuose?</translation>
 <translation id="6059925163896151826">USB įrenginiai</translation>
 <translation id="6060009363608157444">Netinkamas „DnsOverHttps“ režimas.</translation>
+<translation id="6064217302520318294">Ekrano užraktas</translation>
 <translation id="6080696365213338172">Pasiekėte turinį naudodami administratoriaus pateiktą sertifikatą. Duomenys, kuriuos pateikiate <ph name="DOMAIN" />, gali būti perimti administratoriaus.</translation>
 <translation id="6094273045989040137">Komentuoti</translation>
 <translation id="610911394827799129">„Google“ paskyroje gali būti kito tipo naršymo istorijos, kuri pasiekiama adresu <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_lv.xtb b/components/strings/components_strings_lv.xtb
index 8c0b3fd0..e1d5876 100644
--- a/components/strings/components_strings_lv.xtb
+++ b/components/strings/components_strings_lv.xtb
@@ -109,7 +109,7 @@
 <translation id="1426410128494586442">Jā</translation>
 <translation id="1430915738399379752">Drukāt</translation>
 <translation id="1442386063175183758">Abpusējs locījums pa labi</translation>
-<translation id="1442987760062738829">Perforācija</translation>
+<translation id="1442987760062738829">Caurums</translation>
 <translation id="1455413310270022028">Dzēšgumija</translation>
 <translation id="1463543813647160932">5 x 7</translation>
 <translation id="1472675084647422956">Rādīt vairāk</translation>
@@ -220,7 +220,7 @@
 <translation id="1981206234434200693">Notīrīt Chrome pārlūkošanas vēstures datus</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{un vēl 1}zero{un vēl #}one{un vēl #}other{un vēl #}}</translation>
 <translation id="2003709556000175978">Nekavējoties atiestatiet paroli</translation>
-<translation id="2003775180883135320">Četrkārša perforācija augšdaļā</translation>
+<translation id="2003775180883135320">Četri caurumi augšdaļā</translation>
 <translation id="2025186561304664664">Starpniekserverim ir iestatīta autokonfigurācija.</translation>
 <translation id="202813660234680402">Nē, nepievienot</translation>
 <translation id="2030481566774242610">Vai domājāt <ph name="LINK" />?</translation>
@@ -242,7 +242,7 @@
 <translation id="2113977810652731515">Karte</translation>
 <translation id="2114841414352855701">Ignorēta, jo to atcēla politika <ph name="POLICY_NAME" />.</translation>
 <translation id="2119505898009119320">Izsniegts: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
-<translation id="2119867082804433120">Perforācija apakšējā labajā malā</translation>
+<translation id="2119867082804433120">Caurums apakšējā labajā malā</translation>
 <translation id="2129079103035905234">Kustību sensori</translation>
 <translation id="213826338245044447">Mobilās grāmatzīmes</translation>
 <translation id="214556005048008348">Atcelt maksājumu</translation>
@@ -257,7 +257,7 @@
 <translation id="2183608646556468874">Tālruņa numurs</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 adrese}zero{# adreses}one{# adrese}other{# adreses}}</translation>
 <translation id="2187317261103489799">Noteikt (pēc noklusējuma)</translation>
-<translation id="2188375229972301266">Vairākkārtēja perforācija apakšdaļā</translation>
+<translation id="2188375229972301266">Vairāki caurumi apakšdaļā</translation>
 <translation id="2202020181578195191">Ievadiet derīgu gadu</translation>
 <translation id="2212735316055980242">Politika netika atrasta.</translation>
 <translation id="2213606439339815911">Notiek ierakstu ienešana...</translation>
@@ -303,7 +303,7 @@
 <translation id="2409589295040002961">Jūsu administrators var attālināti mainīt jūsu pārlūka iestatījumus. Darbību šajā ierīcē var pārvaldīt arī ārpus Chrome. <ph name="BEGIN_LINK" />Uzzināt vairāk<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">Šis serveris nevarēja pierādīt, ka šī ir vietne <ph name="DOMAIN" />; tās drošības sertifikāts, iespējams, ir atsaukts. Iespējams, tas ir nepareizas konfigurācijas dēļ vai arī kāds ir ļaunprātīgi izmantojis jūsu savienojumu.</translation>
-<translation id="2438874542388153331">Četrkārša perforācija labajā pusē</translation>
+<translation id="2438874542388153331">Četri caurumi labajā pusē</translation>
 <translation id="2463193859425327265">Mainīt sākumlapu</translation>
 <translation id="2463739503403862330">Aizpildīt</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
@@ -528,7 +528,7 @@
 <translation id="358285529439630156">Tiek pieņemtas kredītkartes un priekšapmaksas kartes.</translation>
 <translation id="3582930987043644930">Pievienojiet vārdu.</translation>
 <translation id="3583757800736429874">&amp;Pārvietošanas atsaukuma atcelšana</translation>
-<translation id="3584299510153766161">Divkārša perforācija apakšdaļā</translation>
+<translation id="3584299510153766161">Divi caurumi apakšdaļā</translation>
 <translation id="3586931643579894722">Slēpt detaļas</translation>
 <translation id="3592413004129370115">Italian (aploksne)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -586,7 +586,7 @@
 <translation id="382518646247711829">Ja izmantojat starpniekserveri...</translation>
 <translation id="3828924085048779000">Tukša ieejas frāze nav atļauta.</translation>
 <translation id="3831915413245941253"><ph name="ENROLLMENT_DOMAIN" /> instalēja paplašinājumus papildu funkcijām. Paplašinājumiem ir piekļuve dažiem jūsu datiem.</translation>
-<translation id="3832522519263485449">Vairākkārtēja perforācija kreisajā pusē</translation>
+<translation id="3832522519263485449">Vairāki caurumi kreisajā pusē</translation>
 <translation id="385051799172605136">Atpakaļ</translation>
 <translation id="3858027520442213535">Atjaunināt datumu un laiku</translation>
 <translation id="3884278016824448484">Ierīces identifikators rada konfliktu.</translation>
@@ -629,7 +629,7 @@
 <translation id="4112140312785995938">Pārtīt atpakaļ</translation>
 <translation id="4116663294526079822">Vienmēr atļaut šajā vietnē</translation>
 <translation id="4117700440116928470">Politikas diapazons netiek atbalstīts.</translation>
-<translation id="4123572138124678573">Trīskārša perforācija apakšdaļā</translation>
+<translation id="4123572138124678573">Trīs caurumi apakšdaļā</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{vēl 1}zero{vēl #}one{vēl #}other{vēl #}}</translation>
 <translation id="4130226655945681476">Pārbaudiet tīkla kabeļus, modemu un maršrutētāju</translation>
 <translation id="413544239732274901">Uzzināt vairāk</translation>
@@ -680,7 +680,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{Šī karte tika saglabāta jūsu Google kontā}zero{Šīs kartes tika saglabātas jūsu Google kontā}one{Šīs kartes tika saglabātas jūsu Google kontā}other{Šīs kartes tika saglabātas jūsu Google kontā}}</translation>
 <translation id="428847186335018806">Pārmeklēt failus, ko augšupielādējat vai lejupielādējat pārlūkā Chrome.</translation>
 <translation id="42981349822642051">Izvērst</translation>
-<translation id="4300675098767811073">Vairākkārtēja perforācija labajā pusē</translation>
+<translation id="4300675098767811073">Vairāki caurumi labajā pusē</translation>
 <translation id="4302965934281694568">Chou3 (aploksne)</translation>
 <translation id="4305817255990598646">Pāriet</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -786,7 +786,7 @@
 <translation id="4880827082731008257">Meklēšanas vēsture</translation>
 <translation id="4881695831933465202">Atvērt</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
-<translation id="4913987521957242411">Perforācija augšējā kreisajā malā</translation>
+<translation id="4913987521957242411">Caurums augšējā kreisajā malā</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{un vēl 1 tīmekļa lapa}zero{un vēl # tīmekļa lapas}one{un vēl # tīmekļa lapa}other{un vēl # tīmekļa lapas}}</translation>
 <translation id="4923417429809017348">Šī lapa ir tulkota no nezināmas valodas valodā: <ph name="LANGUAGE_LANGUAGE" /></translation>
 <translation id="4923459931733593730">Maksājums</translation>
@@ -798,7 +798,7 @@
 <translation id="495170559598752135">Darbības</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">Izvērst sarakstu</translation>
-<translation id="4973922308112707173">Divkārša perforācija augšdaļā</translation>
+<translation id="4973922308112707173">Divi caurumi augšdaļā</translation>
 <translation id="4974590756084640048">Atkārtoti iespējot brīdinājumus</translation>
 <translation id="4984339528288761049">Prc5 (aploksne)</translation>
 <translation id="4989163558385430922">Skatīt visu</translation>
@@ -865,7 +865,7 @@
 <translation id="5254958791078852567">E1</translation>
 <translation id="5261548214279761072">Maksājums pabeigts</translation>
 <translation id="5266128565379329178">Iesējums augšdaļā</translation>
-<translation id="5269225904387178860">Četrkārša perforācija apakšdaļā</translation>
+<translation id="5269225904387178860">Četri caurumi apakšdaļā</translation>
 <translation id="5269999699920406580">Tikai īpašnieks <ph name="OWNER_EMAIL" /> var iestatīt funkcijas, kas tiek lietotas visai sistēmai.</translation>
 <translation id="5273658854610202413">Brīdinājums! Šī politika netika apvienota, kā norādīts politikā PolicyDictionaryMultipleSourceMergeList, jo tā nav daļa no apvienojamām vārdnīcu politikām.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -1031,6 +1031,7 @@
 <translation id="6058977677006700226">Vai vēlaties izmantot kartes visās savās ierīcēs?</translation>
 <translation id="6059925163896151826">USB ierīces</translation>
 <translation id="6060009363608157444">Nederīgs DnsOverHttps režīms.</translation>
+<translation id="6064217302520318294">Ekrāna bloķēšana</translation>
 <translation id="6080696365213338172">Jūs esat piekļuvis saturam, izmantojot administratora izsniegtu sertifikātu. Datus, kurus sniedzat domēnā <ph name="DOMAIN" />, var pārtvert jūsu administrators.</translation>
 <translation id="6094273045989040137">Pievienot piezīmi</translation>
 <translation id="610911394827799129">Jūsu Google kontam var būt citu veidu pārlūkošanas vēstures dati vietnē <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
@@ -1038,7 +1039,7 @@
 <translation id="6146055958333702838">Pārbaudiet vadus un atkārtoti palaidiet maršrutētājus, modemus vai citas
     izmantotās tīkla ierīces.</translation>
 <translation id="614940544461990577">Veiciet tālāk norādītās darbības.</translation>
-<translation id="6150036310511284407">Trīskārša perforācija kreisajā pusē</translation>
+<translation id="6150036310511284407">Trīs caurumi kreisajā pusē</translation>
 <translation id="6151417162996330722">Šī servera sertifikāta derīguma periods ir pārāk ilgs.</translation>
 <translation id="6157877588268064908">Lai skatītu nosūtīšanas veidus un prasības, atlasiet adresi.</translation>
 <translation id="6165508094623778733">Uzziniet vairāk</translation>
@@ -1113,11 +1114,11 @@
 <translation id="6529602333819889595">&amp;Dzēšanas atsaukuma atcelšana</translation>
 <translation id="6534179046333460208">Fiziskā tīmekļa ieteikumi</translation>
 <translation id="6545864417968258051">Bluetooth meklēšana</translation>
-<translation id="6547208576736763147">Divkārša perforācija kreisajā pusē</translation>
+<translation id="6547208576736763147">Divi caurumi kreisajā pusē</translation>
 <translation id="6554795675067793129">Jūsu kontu pārvalda <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">Atcelt atsaukšanu</translation>
 <translation id="6569060085658103619">Jūs skatāt paplašinājumu lapu.</translation>
-<translation id="6573200754375280815">Divkārša perforācija labajā pusē</translation>
+<translation id="6573200754375280815">Divi caurumi labajā pusē</translation>
 <translation id="6578796323535178455">C2 (aploksne)</translation>
 <translation id="6579990219486187401">Gaiši rozā</translation>
 <translation id="6583674473685352014">B6 (aploksne)</translation>
@@ -1136,7 +1137,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{Nav}=1{No 1 vietnes (jūs netiksiet izrakstīts no sava Google konta)}zero{No # vietnēm (jūs netiksiet izrakstīts no sava Google konta)}one{No # vietnes (jūs netiksiet izrakstīts no sava Google konta)}other{No # vietnēm (jūs netiksiet izrakstīts no sava Google konta)}}</translation>
 <translation id="6652101503459149953">Izmantot Windows Hello</translation>
 <translation id="6657585470893396449">Parole</translation>
-<translation id="6665553082534466207">Trīskārša perforācija labajā pusē</translation>
+<translation id="6665553082534466207">Trīs caurumi labajā pusē</translation>
 <translation id="6670613747977017428">Atpakaļ drošībā.</translation>
 <translation id="6671697161687535275">Vai noņemt veidlapas ieteikumu no pārlūka Chromium?</translation>
 <translation id="6685834062052613830">Izrakstieties un pabeidziet iestatīšanu</translation>
@@ -1429,7 +1430,7 @@
 <translation id="8131740175452115882">Apstiprināt</translation>
 <translation id="8149426793427495338">Dators tika pārslēgts miega režīmā.</translation>
 <translation id="8150722005171944719">Vietnē <ph name="URL" /> esošo failu nevar nolasīt. Iespējams, tas ir noņemts vai pārvietots vai piekļuvei nepieciešamas atļaujas.</translation>
-<translation id="8163866351304776260">Četrkārša perforācija kreisajā malā</translation>
+<translation id="8163866351304776260">Četri caurumi kreisajā malā</translation>
 <translation id="8175796834047840627">Pārlūkprogrammā Chrome tiek piedāvāts saglabāt jūsu kartes Google kontā, jo esat pierakstījies. Varat mainīt šo darbību iestatījumos.</translation>
 <translation id="8184538546369750125">Izmantot globālo noklusējumu (Atļaut)</translation>
 <translation id="8194797478851900357">&amp;Pārvietošanas atsaukšana</translation>
@@ -1521,7 +1522,7 @@
 <translation id="8703575177326907206">Jūsu savienojums ar <ph name="DOMAIN" /> nav kodēts.</translation>
 <translation id="8718314106902482036">Maksājums nav pabeigts</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, meklēšanas ieteikums</translation>
-<translation id="8719528812645237045">Vairākkārtēja perforācija augšdaļā</translation>
+<translation id="8719528812645237045">Vairāki caurumi augšdaļā</translation>
 <translation id="8723954843026426558">Es piekrītu domēna <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> pakalpojumu sniegšanas noteikumiem, konfidencialitātes politikai un atteikuma tiesībām</translation>
 <translation id="8725066075913043281">Mēģināt vēlreiz</translation>
 <translation id="8728672262656704056">Jūs esat atvēris inkognito režīmu</translation>
@@ -1556,7 +1557,7 @@
 <translation id="8903921497873541725">Tuvināt</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google konts</translation>
-<translation id="892588693504540538">Perforācija augšējā labajā malā</translation>
+<translation id="892588693504540538">Caurums augšējā labajā malā</translation>
 <translation id="8931333241327730545">Vai vēlaties saglabāt šo karti savā Google kontā?</translation>
 <translation id="8932102934695377596">Norādītais laiks ir pārāk tālu pagātnē</translation>
 <translation id="893332455753468063">Vārda pievienošana</translation>
@@ -1618,7 +1619,7 @@
 <translation id="9174917557437862841">Ciļņu pārslēgšanas poga. Nospiediet ievadīšanas taustiņu, lai pārslēgtu šo cilni.</translation>
 <translation id="9183302530794969518">Google dokumenti</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> izmanto neatbalstītu protokolu.</translation>
-<translation id="9191834167571392248">Perforācija apakšējā kreisajā malā</translation>
+<translation id="9191834167571392248">Caurums apakšējā kreisajā malā</translation>
 <translation id="9205078245616868884">Jūsu dati ir šifrēti, izmantojot jūsu sinhronizācijas ieejas frāzi. Lai sāktu sinhronizāciju, ievadiet ieejas frāzi.</translation>
 <translation id="9207861905230894330">Rakstu neizdevās pievienot.</translation>
 <translation id="9215416866750762878">Lietojumprogrammas darbības dēļ pārlūkā Chrome nevar izveidot drošu savienojumu ar šo vietni</translation>
@@ -1629,7 +1630,7 @@
 <translation id="936602727769022409">Varat zaudēt piekļuvi savam Google kontam. Chromium iesaka nekavējoties nomainīt paroli. Jums tiks lūgts pierakstīties.</translation>
 <translation id="939736085109172342">Jauna mape</translation>
 <translation id="945855313015696284">Pārbaudiet tālāk sniegto informāciju un dzēsiet visas nederīgās kartītes.</translation>
-<translation id="950736567201356821">Trīskārša perforācija augšdaļā</translation>
+<translation id="950736567201356821">Trīs caurumi augšdaļā</translation>
 <translation id="951104842009476243">Atbalstītās debetkartes un priekšapmaksas kartes</translation>
 <translation id="961663415146723894">Iesējums apakšdaļā</translation>
 <translation id="962484866189421427">Šis saturs jūsu ierīcē var mēģināt instalēt maldinošas lietotnes, kas tiek uzdodas par cita veida saturu, vai vākt datus, kas var tikt izmantoti jūsu izsekošanai. <ph name="BEGIN_LINK" />Tāpat rādīt<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_ml.xtb b/components/strings/components_strings_ml.xtb
index 17d71684..73652b9 100644
--- a/components/strings/components_strings_ml.xtb
+++ b/components/strings/components_strings_ml.xtb
@@ -1017,6 +1017,7 @@
 <translation id="6058977677006700226">നിങ്ങളുടെ എല്ലാ ഉപകരണങ്ങളിലും നിങ്ങളുടെ കാർഡുകൾ ഉപയോഗിക്കണോ?</translation>
 <translation id="6059925163896151826">USB ഉപകരണങ്ങൾ</translation>
 <translation id="6060009363608157444">DnsOverHttps മോഡ് അസാധുവാണ്.</translation>
+<translation id="6064217302520318294">സ്ക്രീൻ ലോക്ക്</translation>
 <translation id="6080696365213338172">അഡ്‌മിനിസ്‌ട്രേറ്റർ നൽകിയ സർട്ടിഫിക്കറ്റ് ഉപയോഗിച്ച് നിങ്ങൾ ഉള്ളടക്കം ആക്‌സസ് ചെയ്‌തു. നിങ്ങൾ <ph name="DOMAIN" /> എന്നതിലേക്ക് നൽകുന്ന ഡാറ്റ അഡ്‌മിനിസ്‌ട്രേറ്റർക്ക് തടയാനാവും.</translation>
 <translation id="6094273045989040137">അനോട്ടേറ്റ് ചെയ്യുക</translation>
 <translation id="610911394827799129">നിങ്ങളുടെ Google അക്കൗണ്ടിന് <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> എന്നതിൽ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
diff --git a/components/strings/components_strings_mr.xtb b/components/strings/components_strings_mr.xtb
index 4b41c84c..2828e1f 100644
--- a/components/strings/components_strings_mr.xtb
+++ b/components/strings/components_strings_mr.xtb
@@ -963,6 +963,7 @@
 <translation id="6058977677006700226">तुमच्या सर्व डिव्हाइसवर तुमची कार्डे वापरायची का?</translation>
 <translation id="6059925163896151826">USB डिव्हाइसेस</translation>
 <translation id="6060009363608157444">चुकीचा DnsOverHttps मोड.</translation>
+<translation id="6064217302520318294">स्क्रीन लॉक</translation>
 <translation id="6080696365213338172">तुम्ही अॅडमिनिस्ट्रेटरने-दिलेले प्रमाणपत्र वापरून आशय अॅक्सेस केला. तुम्ही <ph name="DOMAIN" /> वर प्रदान करता तो डेटा तुमच्या अॅडमिनिस्ट्रेटरद्वारे अंतःखंडित केला जाऊ शकतो.</translation>
 <translation id="6094273045989040137">भाष्य करा</translation>
 <translation id="610911394827799129">तुमच्या Google खात्यामध्ये <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> वर ब्राउझिंग इतिहासाची अन्य स्वरूपे असू शकतात.</translation>
diff --git a/components/strings/components_strings_ms.xtb b/components/strings/components_strings_ms.xtb
index 679d4ac..4110e45 100644
--- a/components/strings/components_strings_ms.xtb
+++ b/components/strings/components_strings_ms.xtb
@@ -1036,6 +1036,7 @@
 <translation id="6058977677006700226">Gunakan kad anda pada semua peranti anda?</translation>
 <translation id="6059925163896151826">Peranti USB</translation>
 <translation id="6060009363608157444">Mod DnsOverHttps tidak sah.</translation>
+<translation id="6064217302520318294">Kunci skrin</translation>
 <translation id="6080696365213338172">Anda telah mengakses kandungan menggunakan perakuan yang disediakan oleh pentadbir. Data yang anda berikan kepada <ph name="DOMAIN" /> boleh dipintas oleh pentadbir anda.</translation>
 <translation id="6094273045989040137">Anotasi</translation>
 <translation id="610911394827799129">Akaun Google anda mungkin mempunyai bentuk sejarah penyemakan imbas yang lain di <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_nl.xtb b/components/strings/components_strings_nl.xtb
index 3291ab4d..70b3d162 100644
--- a/components/strings/components_strings_nl.xtb
+++ b/components/strings/components_strings_nl.xtb
@@ -1013,6 +1013,7 @@
 <translation id="6058977677006700226">Je passen gebruiken op al je apparaten?</translation>
 <translation id="6059925163896151826">USB-apparaten</translation>
 <translation id="6060009363608157444">Ongeldige DnsOverHttps-modus.</translation>
+<translation id="6064217302520318294">Schermvergrendeling</translation>
 <translation id="6080696365213338172">Je hebt toegang tot content gekregen met behulp van een certificaat van je beheerder. Gegevens die je verstrekt aan <ph name="DOMAIN" />, kunnen door je beheerder worden onderschept.</translation>
 <translation id="6094273045989040137">Aantekeningen maken</translation>
 <translation id="610911394827799129">Er kunnen andere vormen van browsegeschiedenis zijn opgeslagen voor je Google-account op <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
@@ -1122,7 +1123,7 @@
 <translation id="6671697161687535275">Formuliersuggestie verwijderen uit Chromium?</translation>
 <translation id="6685834062052613830">Uitloggen en configuratie voltooien</translation>
 <translation id="6689271823431384964">Chrome biedt aan je kaarten in je Google-account op te slaan omdat je bent ingelogd. Je kunt dit wijzigen in de instellingen. De naam van de kaarthouder is afkomstig uit je account.</translation>
-<translation id="6707256370811247129">Scan de content van het cachegeheugen en de bestanden die je downloadt of uploadt in Chrome.</translation>
+<translation id="6707256370811247129">De content van het cachegeheugen en de bestanden die je downloadt of uploadt in Chrome scannen.</translation>
 <translation id="6710213216561001401">Vorige</translation>
 <translation id="6710594484020273272">&lt;Typ een zoekterm&gt;</translation>
 <translation id="671076103358959139">Inschrijftoken:</translation>
diff --git a/components/strings/components_strings_no.xtb b/components/strings/components_strings_no.xtb
index 5b4e153d..696a428 100644
--- a/components/strings/components_strings_no.xtb
+++ b/components/strings/components_strings_no.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Vil du bruke kortene på alle enhetene dine?</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
 <translation id="6060009363608157444">Ugyldig DnsOverHttps-modus.</translation>
+<translation id="6064217302520318294">Skjermlås</translation>
 <translation id="6080696365213338172">Du har åpnet innhold via et administratorlevert sertifikat. Data du sender til <ph name="DOMAIN" /> kan stoppes av administratoren din.</translation>
 <translation id="6094273045989040137">Annoter</translation>
 <translation id="610911394827799129">Det kan hende Google-kontoen din har andre typer nettleserlogger på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_pl.xtb b/components/strings/components_strings_pl.xtb
index eaaae4d..429383e 100644
--- a/components/strings/components_strings_pl.xtb
+++ b/components/strings/components_strings_pl.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Chcesz używać swoich kart na wszystkich urządzeniach?</translation>
 <translation id="6059925163896151826">Urządzenia USB</translation>
 <translation id="6060009363608157444">Nieprawidłowy tryb DnsOverHttps.</translation>
+<translation id="6064217302520318294">Blokada ekranu</translation>
 <translation id="6080696365213338172">Masz dostęp do treści dzięki certyfikatowi dostarczonemu przez administratora. Administrator może odczytać dane, jakie udostępnisz w <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Dodaj adnotacje</translation>
 <translation id="610911394827799129">Inne rodzaje historii przeglądania mogą być nadal dostępne na Twoim koncie Google na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_pt-BR.xtb b/components/strings/components_strings_pt-BR.xtb
index 8c0b3dd..bf5e878 100644
--- a/components/strings/components_strings_pt-BR.xtb
+++ b/components/strings/components_strings_pt-BR.xtb
@@ -1018,6 +1018,7 @@
 <translation id="6058977677006700226">Usar seus cartões em todos os dispositivos?</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6060009363608157444">Modo DnsOverHttps inválido.</translation>
+<translation id="6064217302520318294">Bloqueio de tela</translation>
 <translation id="6080696365213338172">Você acessou conteúdo usando um certificado fornecido pelo administrador. Os dados fornecidos a <ph name="DOMAIN" /> podem ser interceptados por seu administrador.</translation>
 <translation id="6094273045989040137">Anotar</translation>
 <translation id="610911394827799129">Sua Conta do Google pode ter outras formas de histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_pt-PT.xtb b/components/strings/components_strings_pt-PT.xtb
index e839294..3a50a4cf 100644
--- a/components/strings/components_strings_pt-PT.xtb
+++ b/components/strings/components_strings_pt-PT.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Pretende utilizar os seus cartões em todos os seus dispositivos?</translation>
 <translation id="6059925163896151826">Dispositivos USB</translation>
 <translation id="6060009363608157444">Modo DnsOverHttps inválido.</translation>
+<translation id="6064217302520318294">Bloqueio de ecrã</translation>
 <translation id="6080696365213338172">Acedeu a conteúdos utilizando um certificado fornecido por um gestor. Os dados que fornecer a <ph name="DOMAIN" /> podem ser intercetados pelo seu gestor.</translation>
 <translation id="6094273045989040137">Anotar</translation>
 <translation id="610911394827799129">A sua Conta Google pode ter outras formas do histórico de navegação em <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_ro.xtb b/components/strings/components_strings_ro.xtb
index 9dd98a4..d886067 100644
--- a/components/strings/components_strings_ro.xtb
+++ b/components/strings/components_strings_ro.xtb
@@ -98,7 +98,7 @@
 <translation id="1375198122581997741">Despre versiune</translation>
 <translation id="1376836354785490390">Afișează mai puține</translation>
 <translation id="1377321085342047638">Număr card</translation>
-<translation id="1380591466760231819">Îndoire Letter</translation>
+<translation id="1380591466760231819">Îndoire tip scrisoare</translation>
 <translation id="138218114945450791">Albastru deschis</translation>
 <translation id="1382194467192730611">Dispozitiv USB permis de administrator</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> nu a trimis date.</translation>
@@ -395,7 +395,7 @@
 <translation id="2847118875340931228">Deschide o fereastră incognito</translation>
 <translation id="2850739647070081192">Invite (Plic)</translation>
 <translation id="2856444702002559011">Atacatorii pot încerca să îți fure informațiile de pe <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (de exemplu, parole, mesaje sau date despre cardurile de credit). <ph name="BEGIN_LEARN_MORE_LINK" />Află mai multe<ph name="END_LEARN_MORE_LINK" /></translation>
-<translation id="2878197950673342043">Îndoire afiș</translation>
+<translation id="2878197950673342043">Îndoire de tip afiș</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">Salvezi cardul?</translation>
 <translation id="2882949212241984732">Îndoire tip fereastră dublă</translation>
@@ -879,7 +879,7 @@
 <translation id="5300589172476337783">Afișează</translation>
 <translation id="5308380583665731573">Conectează-te</translation>
 <translation id="5308689395849655368">Raportarea blocărilor este dezactivată.</translation>
-<translation id="5314967030527622926">Dispozitiv pentru crearea broșurilor</translation>
+<translation id="5314967030527622926">Broșator</translation>
 <translation id="5317780077021120954">Salvează</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> din <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">Alege informațiile de contact</translation>
@@ -1032,6 +1032,7 @@
 <translation id="6058977677006700226">Folosești cardurile pe toate dispozitivele?</translation>
 <translation id="6059925163896151826">Dispozitive USB</translation>
 <translation id="6060009363608157444">Mod DnsOverHttps nevalid.</translation>
+<translation id="6064217302520318294">Blocarea ecranului</translation>
 <translation id="6080696365213338172">Ați accesat conținut utilizând un certificat oferit de administrator. Datele pe care le transmiteți către <ph name="DOMAIN" /> pot fi interceptate de administratorul dvs.</translation>
 <translation id="6094273045989040137">Adnotează</translation>
 <translation id="610911394827799129">Contul Google poate să ofere alte forme ale istoricului de navigare la <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
@@ -1099,7 +1100,7 @@
 <translation id="6446608382365791566">Adaugă mai multe informații</translation>
 <translation id="6447842834002726250">Cookie-uri</translation>
 <translation id="6451458296329894277">Confirmă retrimiterea formularului</translation>
-<translation id="6457206614190510200">Cusătură pe mijloc</translation>
+<translation id="6457206614190510200">Broșare pe mijloc</translation>
 <translation id="6465306955648956876">Gestionează parolele...</translation>
 <translation id="647261751007945333">Politici privind dispozitivele</translation>
 <translation id="6476284679642588870">Gestionează metodele de plată</translation>
diff --git a/components/strings/components_strings_ru.xtb b/components/strings/components_strings_ru.xtb
index 2441c37..6302fad0 100644
--- a/components/strings/components_strings_ru.xtb
+++ b/components/strings/components_strings_ru.xtb
@@ -1017,6 +1017,7 @@
 <translation id="6058977677006700226">Хотите использовать карты на всех устройствах?</translation>
 <translation id="6059925163896151826">USB-устройства</translation>
 <translation id="6060009363608157444">Недопустимый режим DnsOverHttps.</translation>
+<translation id="6064217302520318294">Блокировка экрана</translation>
 <translation id="6080696365213338172">Вы используете сертификат, предоставленный администратором, поэтому он может заблокировать передачу данных на сайт <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Аннотировать</translation>
 <translation id="610911394827799129">Информация о других ваших действиях в Интернете может также храниться на странице <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sk.xtb b/components/strings/components_strings_sk.xtb
index 4c1e95d..4144710 100644
--- a/components/strings/components_strings_sk.xtb
+++ b/components/strings/components_strings_sk.xtb
@@ -1014,6 +1014,7 @@
 <translation id="6058977677006700226">Chcete použiť svoje karty vo všetkých zariadeniach?</translation>
 <translation id="6059925163896151826">Zariadenia USB</translation>
 <translation id="6060009363608157444">Neplatný režim DnsOverHttps.</translation>
+<translation id="6064217302520318294">Zámka obrazovky</translation>
 <translation id="6080696365213338172">K obsahu ste pristúpili pomocou certifikátu, ktorý poskytol správca. Údaje, ktoré poskytnete doméne <ph name="DOMAIN" /> môžu byť zachytené správcom.</translation>
 <translation id="6094273045989040137">Pridať anotáciu</translation>
 <translation id="610911394827799129">Váš účet Google môže mať ďalšie formy histórie prehliadania na adrese <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_sl.xtb b/components/strings/components_strings_sl.xtb
index 253a573..d6358d2 100644
--- a/components/strings/components_strings_sl.xtb
+++ b/components/strings/components_strings_sl.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Želite kartice uporabljati v vseh svojih napravah?</translation>
 <translation id="6059925163896151826">Naprave USB</translation>
 <translation id="6060009363608157444">Neveljaven način DnsOverHttps.</translation>
+<translation id="6064217302520318294">Zaklepanje zaslona</translation>
 <translation id="6080696365213338172">Do vsebine ste dostopali z geslom, ki ga je zagotovil skrbnik. Podatke, ki jih pošljete v <ph name="DOMAIN" />, lahko prestreže skrbnik.</translation>
 <translation id="6094273045989040137">Pripisovanje</translation>
 <translation id="610911394827799129">V Google Računu so morda druge vrste zgodovine brskanja na <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sr.xtb b/components/strings/components_strings_sr.xtb
index aa78e4e4..0b5bd95 100644
--- a/components/strings/components_strings_sr.xtb
+++ b/components/strings/components_strings_sr.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Желите ли да користите картице на свим уређајима?</translation>
 <translation id="6059925163896151826">USB уређаји</translation>
 <translation id="6060009363608157444">Режим DnsOverHttps је неважећи.</translation>
+<translation id="6064217302520318294">Закључавање екрана</translation>
 <translation id="6080696365213338172">Приступали сте садржају помоћу сертификата који је обезбедио администратор. Администратор може да пресретне податке које обезбедите домену <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Додајте напомене</translation>
 <translation id="610911394827799129">Google налог може да има друге облике историје прегледања на <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_sv.xtb b/components/strings/components_strings_sv.xtb
index 5c57d0a..bb8a2e378 100644
--- a/components/strings/components_strings_sv.xtb
+++ b/components/strings/components_strings_sv.xtb
@@ -1035,6 +1035,7 @@
 <translation id="6058977677006700226">Vill du använda dina kort på alla enheter?</translation>
 <translation id="6059925163896151826">USB-enheter</translation>
 <translation id="6060009363608157444">Ogiltigt läge för DnsOverHttps.</translation>
+<translation id="6064217302520318294">Skärmlås</translation>
 <translation id="6080696365213338172">Du har visat innehåll med hjälp av ett certifikat från en administratör. Det innebär att data som du har angett på <ph name="DOMAIN" /> även kan visas av administratören.</translation>
 <translation id="6094273045989040137">Annotera</translation>
 <translation id="610911394827799129">Det kan finnas andra former av webbhistorik i Google-kontot på <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_sw.xtb b/components/strings/components_strings_sw.xtb
index 0725544..9d2315ec 100644
--- a/components/strings/components_strings_sw.xtb
+++ b/components/strings/components_strings_sw.xtb
@@ -1029,6 +1029,7 @@
 <translation id="6058977677006700226">Ungependa kutumia kadi zako kwenye vifaa vyako vyote?</translation>
 <translation id="6059925163896151826">Vifaa vya USB</translation>
 <translation id="6060009363608157444">Hali ya DnsOverHttps isiyo sahihi.</translation>
+<translation id="6064217302520318294">Kufunga skrini</translation>
 <translation id="6080696365213338172">Umefikia maudhui kwa kutumia cheti kilichotolewa cha msimamizi. Data unayotoa katika <ph name="DOMAIN" /> inaweza kuzuiliwa na msimamizi wako.</translation>
 <translation id="6094273045989040137">Weka vidokezo</translation>
 <translation id="610911394827799129">Huenda Akaunti yako ya Google ina aina nyingine za historia ya kuvinjari katika <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />.</translation>
diff --git a/components/strings/components_strings_ta.xtb b/components/strings/components_strings_ta.xtb
index 5ca77dd..7ab4b98 100644
--- a/components/strings/components_strings_ta.xtb
+++ b/components/strings/components_strings_ta.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">வைஃபையுடன் மீண்டும் இணைத்தல்</translation>
 <translation id="1165039591588034296">பிழை</translation>
 <translation id="1175364870820465910">&amp;அச்சிடு...</translation>
+<translation id="1175875016430184367">டிரிப்பில் ஸ்டேப்பில் ரைட்</translation>
 <translation id="1178581264944972037">இடைநிறுத்து</translation>
 <translation id="1181037720776840403">அகற்று</translation>
 <translation id="1197088940767939838">ஆரஞ்சு</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">மால்வேர் ஸ்கேனிங்</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />குக்கீகளை அழிக்கவும்<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">தடுக்கப்பட்ட அம்சங்கள்</translation>
+<translation id="1314509827145471431">பைண்டு ரைட்</translation>
 <translation id="1320233736580025032">Prc1 (என்வலப்)</translation>
 <translation id="132301787627749051">கிளிப்-போர்டு படத்தைத் தேடும்</translation>
 <translation id="1323433172918577554">மேலும் காட்டு</translation>
 <translation id="132390688737681464">முகவரிகளைச் சேமித்துத் தானாக நிரப்பு</translation>
+<translation id="1330449323196174374">லெஃப்ட் கேட் ஃபோல்டு</translation>
 <translation id="1333989956347591814">இருப்பினும், பின்வரும் தரப்பினர் உங்கள் செயல்பாட்டைப் <ph name="BEGIN_EMPHASIS" />பார்க்க முடியும்<ph name="END_EMPHASIS" />:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />நீங்கள் பார்வையிடும் இணையதளங்கள்
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">பதிப்பைப் பற்றி</translation>
 <translation id="1376836354785490390">குறைவாகக் காட்டு</translation>
 <translation id="1377321085342047638">கார்டு எண்</translation>
+<translation id="1380591466760231819">லெட்டர் ஃபோல்டு</translation>
 <translation id="138218114945450791">வெளிர் நீலம்</translation>
 <translation id="1382194467192730611">உங்கள் நிர்வாகி அனுமதிக்கும் USB சாதனம்</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> எந்தத் தரவையும் அனுப்பவில்லை.</translation>
 <translation id="1405567553485452995">வெளிர் பச்சை</translation>
 <translation id="1407135791313364759">எல்லாவற்றையும் திற</translation>
+<translation id="1408787208417187241">டிரிப்பில் ஸ்டேப்பில் டாப்</translation>
 <translation id="1413809658975081374">தனியுரிமைப் பிழை</translation>
 <translation id="1426410128494586442">ஆம்</translation>
 <translation id="1430915738399379752">அச்சிடுக</translation>
+<translation id="1442386063175183758">ரைட் கேட் ஃபோல்டு</translation>
+<translation id="1442987760062738829">பஞ்ச்</translation>
 <translation id="1455413310270022028">எரேஸர்</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">மேலும் காண்பி</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">ஏற்கப்படும் கிரெடிட் மற்றும் டெபிட் கார்டுகள்</translation>
 <translation id="194030505837763158"><ph name="LINK" /> க்குச் செல்க</translation>
 <translation id="1945968466830820669">உங்கள் நிறுவனத்தின் கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chromium பரிந்துரைக்கிறது.</translation>
+<translation id="1947454675006758438">ஸ்டேப்பில் டாப் ரைட்</translation>
 <translation id="1948773908305951926">ஏற்கப்படும் ப்ரீபெய்டு கார்டுகள்</translation>
 <translation id="1962204205936693436"><ph name="DOMAIN" /> புக்மார்க்குகள்</translation>
 <translation id="1973335181906896915">தொடராக்க பிழை</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">Chromeமின் உலாவல் வரலாற்றுத் தரவை அழி</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{மேலும் 1}other{மேலும் #}}</translation>
 <translation id="2003709556000175978">உங்கள் கடவுச்சொல்லை இப்போதே மீட்டமைக்கவும்</translation>
+<translation id="2003775180883135320">குவாட் பஞ்ச் டாப்</translation>
 <translation id="2025186561304664664">ப்ராக்ஸி, தானியங்கி உள்ளமைவுக்கு அமைக்கப்பட்டுள்ளது</translation>
 <translation id="202813660234680402">வேண்டாம், சேர்க்காதே</translation>
 <translation id="2030481566774242610"><ph name="LINK" /> ஐக் குறிப்பிடுகிறீர்களா?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">ஒலி</translation>
 <translation id="2094505752054353250">டொமைன் பொருந்தவில்லை</translation>
 <translation id="2096368010154057602">துறை</translation>
+<translation id="2099652385553570808">டிரிப்பில் ஸ்டேப்பில் லெஃப்ட்</translation>
 <translation id="2102134110707549001">வலுவான கடவுச்சொல்லைப் பரிந்துரைசெய்…</translation>
 <translation id="2108755909498034140">கம்ப்யூட்டரை மீண்டும் தொடங்கவும்</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">கார்டு</translation>
 <translation id="2114841414352855701"><ph name="POLICY_NAME" /> ஆல் கொள்கை மேலெழுதப்பட்டுள்ளதால் புறக்கணிக்கப்பட்டது.</translation>
 <translation id="2119505898009119320">வழங்கப்பட்ட நிறுவனம்: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">பஞ்ச் பாட்டம் ரைட்</translation>
 <translation id="2129079103035905234">மோஷன் சென்சார்கள்</translation>
 <translation id="213826338245044447">மொபைல் புக்மார்க்குகள்</translation>
 <translation id="214556005048008348">பேமண்ட்டை ரத்துசெய்</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">ஃபோன் எண்</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 முகவரி}other{# முகவரிகள்}}</translation>
 <translation id="2187317261103489799">கண்டறி (இயல்பு)</translation>
+<translation id="2188375229972301266">மல்டிப்பில் பஞ்ச் பாட்டம்</translation>
 <translation id="2202020181578195191">சரியான காலாவதி ஆண்டை உள்ளிடவும்</translation>
 <translation id="2212735316055980242">கொள்கை காணப்படவில்லை</translation>
 <translation id="2213606439339815911">உள்ளீடுகளைப் பெறுகிறது...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099"><ph name="BEGIN_LINK" />கண்டறியும் பயன்பாட்டைப்<ph name="END_LINK" /> பயன்படுத்தி இணைப்பைச் சரிசெய்யவும்</translation>
 <translation id="2239100178324503013">இப்போதே அனுப்பு</translation>
 <translation id="2248949050832152960">WebAuthnனைப் பயன்படுத்து</translation>
+<translation id="2250931979407627383">எட்ஜ் ஸ்டிட்ச் லெஃப்ட்</translation>
 <translation id="225207911366869382">இந்த கொள்கைக்கான மதிப்பு தடுக்கப்பட்டது.</translation>
 <translation id="2257315177824333709">தற்போது உங்கள் கார்டு விவரங்களைச் சேமிக்க இயலாது</translation>
 <translation id="2262243747453050782">HTTP பிழை</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">தொலைபேசி எண்</translation>
 <translation id="2277103315734023688">முன்செல்</translation>
 <translation id="2283340219607151381">முகவரிகளைச் சேமித்துத் தானாக நிரப்பு</translation>
+<translation id="2289385804009217824">டிரிம்</translation>
 <translation id="2292556288342944218">உங்கள் இணைய அணுகல் தடுக்கப்பட்டது</translation>
 <translation id="2297722699537546652">B5 (என்வலப்)</translation>
 <translation id="2310021320168182093">Chou2 (என்வலப்)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">உலாவியின் அமைவை உங்கள் நிர்வாகி தொலைநிலையிலிருந்தே மாற்ற முடியும். இந்தச் சாதனத்தின் செயல்பாடுகளை Chromeமுக்கு வெளியிலிருந்தும் நிர்வகிக்கலாம். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழ் திரும்பப்பெறப்பட்டிருக்கலாம். இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
+<translation id="2438874542388153331">குவாட் பஞ்ச் ரைட்</translation>
 <translation id="2463193859425327265">முகப்புப் பக்கத்தை மாற்று</translation>
 <translation id="2463739503403862330">நிரப்பு</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">டெலிவரி முறையைத் தேர்வு செய்</translation>
+<translation id="2465688316154986572">ஸ்டேப்பில்</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />நெட்வொர்க் டயக்னாஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">இந்தப் பக்கத்தை மொழிபெயர்</translation>
 <translation id="2479410451996844060">தவறான தேடல் URL.</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">கணக்கைப் பாதுகாத்திடு</translation>
 <translation id="2515335152965840738">புறக்கணி</translation>
 <translation id="2515629240566999685">உங்கள் பகுதியில் உள்ள சிக்னலைச் சரிபார்த்தல்</translation>
+<translation id="2521385132275182522">ஸ்டேப்பில் பாட்டம் ரைட்</translation>
 <translation id="2523886232349826891">இந்தச் சாதனத்தில் மட்டும் சேமிக்கப்படும்</translation>
 <translation id="2524461107774643265">மேலும் தகவலைச் சேர்க்கவும்</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{மேலும் ஒன்று}other{மேலும் #}}</translation>
@@ -326,10 +343,14 @@
 <translation id="2618023639789766142">C10 (என்வலப்)</translation>
 <translation id="2625385379895617796">உங்கள் கடிகாரம் மிகவும் முன்னோக்கி இருக்கிறது</translation>
 <translation id="2634124572758952069"><ph name="HOST_NAME" /> இன் சேவையக IP முகவரியைக் கண்டறிய முடியவில்லை.</translation>
+<translation id="2638745661847473633">நீங்கள் செல்லும் <ph name="ORIGIN" /> சேவையகம் அதனுடன் தொடர்புடைய எல்லாக் கோரிக்கைகளுக்கும் அசல் கொள்கை பொருந்த வேண்டுமென கோரிக்கை விடுத்துள்ளது. ஆனால் இப்போது இது தவறானதொரு கொள்கையை வழங்கியுள்ளது. இதனால் <ph name="SITE" /> இணையதளத்திற்கான உங்கள் கோரிக்கையை நிறைவுசெய்ய முடியாத வகையில் உலாவி தடுக்கப்பட்டுள்ளது. இணையதள ஆப்ரேட்டர்கள் இணையதளத்திற்கான பாதுகாப்பையும் 
+மற்ற பண்புகளையும் உள்ளமைக்க அசல் கொள்கைகளைப் பயன்படுத்தலாம்.</translation>
 <translation id="2639739919103226564">நிலை:</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">கோப்பிற்கான அணுகல் மறுக்கப்பட்டது</translation>
 <translation id="2653659639078652383">சமர்ப்பி</translation>
+<translation id="2660650542324841986">நீங்கள் செல்லும் <ph name="ORIGIN" /> சேவையகம் அதனுடன் தொடர்புடைய எல்லாக் கோரிக்கைகளுக்கும் அசல் கொள்கை பொருந்த வேண்டுமென கோரிக்கை விடுத்துள்ளது. ஆனால் இப்போது இது எந்தவொரு கொள்கையையும் வழங்கவில்லை. இதனால் <ph name="SITE" /> இணையதளத்திற்கான உங்கள் கோரிக்கையை நிறைவுசெய்ய முடியாத வகையில் உலாவி தடுக்கப்பட்டுள்ளது. இணையதள ஆப்ரேட்டர்கள் இணையதளத்திற்கான பாதுகாப்பையும் 
+மற்ற பண்புகளையும் உள்ளமைக்க அசல் கொள்கைகளைப் பயன்படுத்தலாம்.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{எதுவுமில்லை}=1{ஒரு கடவுச்சொல் (டொமைன்கள்: <ph name="DOMAIN_LIST" />)}=2{2 கடவுச்சொற்கள் (டொமைன்கள்: <ph name="DOMAIN_LIST" />)}other{# கடவுச்சொற்கள் (டொமைன்கள்: <ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">பிற தாவல்கள் அல்லது ஆப்ஸை மூடவும்</translation>
 <translation id="2674170444375937751">உங்கள் வரலாற்றிலிருக்கும் பக்கங்களை நிச்சயமாக நீக்க விரும்புகிறீர்களா?</translation>
@@ -344,6 +365,7 @@
 <translation id="2713444072780614174">வெள்ளை</translation>
 <translation id="2720342946869265578">அருகிலுள்ளவை</translation>
 <translation id="2721148159707890343">கோரிக்கை வெற்றியடைந்தது</translation>
+<translation id="272451190272506600">பேமெண்ட் செய்ய சென்சாரைத் தொடவும்</translation>
 <translation id="2728127805433021124">சேவையகச் சான்றிதழ் ஒரு வலுவற்ற கையொப்ப அல்காரிதமைப் பயன்படுத்தி கையொப்பமிடப்பட்டுள்ளது.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />கனெக்டிவிட்டி டயக்னஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">இந்த அம்சங்களை இயக்கினால் நீங்கள் உலாவிய தரவை இழக்கக்கூடும், உங்கள் பாதுகாப்பு அல்லது தனியுரிமையில் சிக்கல் ஏற்படக்கூடும். இயக்கிய அம்சங்கள் இந்த உலாவியின் எல்லாப் பயனர்களுக்கும் பொருந்தும்.</translation>
@@ -367,8 +389,10 @@
 <translation id="2847118875340931228">மறைநிலை சாளரத்தைத் திற</translation>
 <translation id="2850739647070081192">Invite (என்வலப்)</translation>
 <translation id="2856444702002559011"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> தளத்திலிருந்து ஹேக்கர்கள் உங்கள் தகவலை (எடுத்துக்காட்டாக, கடவுச்சொற்கள், செய்திகள் அல்லது கிரெடிட் கார்டுகள்) திருட முயற்சிக்கக்கூடும். <ph name="BEGIN_LEARN_MORE_LINK" />மேலும் அறிக<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">போஸ்டர் ஃபோல்டு</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">கார்டைச் சேமிக்கவா?</translation>
+<translation id="2882949212241984732">டபுள்-கேட் ஃபோல்டு</translation>
 <translation id="2903493209154104877">முகவரிகள்</translation>
 <translation id="290376772003165898"><ph name="LANGUAGE" /> மொழியில் பக்கம் இல்லையா?</translation>
 <translation id="2909946352844186028">நெட்வொர்க் மாற்றம் கண்டறியப்பட்டது.</translation>
@@ -378,6 +402,7 @@
 <translation id="2925673989565098301">டெலிவரி முறை</translation>
 <translation id="2928905813689894207">பில்லிங் முகவரி</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}other{<ph name="SHIPPING_ADDRESS_PREVIEW" />, மேலும் <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" />}}</translation>
+<translation id="2930577230479659665">டிரிம் ஆஃப்டர் ஈச் காப்பி</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழ் <ph name="DOMAIN2" /> இலிருந்து பெறப்பட்டது. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
 <translation id="2948083400971632585">இணைப்பிற்காக உள்ளமைத்த எந்த பிராக்சிகளையும் நீங்கள் அமைப்புகள் பக்கத்திலிருந்து முடக்கலாம்.</translation>
@@ -391,6 +416,7 @@
 <translation id="2985398929374701810">சரியான முகவரியை உள்ளிடவும்</translation>
 <translation id="2986368408720340940">இந்தப் பிக்அப் முறை இல்லை. வேறு முறையைப் பயன்படுத்திப் பார்க்கவும்.</translation>
 <translation id="2987034854559945715">பொருந்தும் அம்சங்கள் இல்லை</translation>
+<translation id="2989742184762224133">டூயல் ஸ்டேப்பில் டாப்</translation>
 <translation id="2991174974383378012">இணையதளங்களுடன் பகிர்பவை</translation>
 <translation id="2991571918955627853">இணையதளமானது HSTSஸைப் பயன்படுத்துவதால், தற்போது <ph name="SITE" />ஐப் பார்க்க முடியாது. பொதுவாக நெட்வொர்க் பிழைகளும் பாதிப்புகளும் தற்காலிகமானவை என்பதால், இந்தப் பக்கம் பின்னர் சரியாகச் செயல்படக்கூடும்.</translation>
 <translation id="3005723025932146533">சேமித்த நகலைக் காட்டு</translation>
@@ -409,6 +435,7 @@
 <translation id="3096100844101284527">பிக்அப் முகவரியைச் சேர்</translation>
 <translation id="3105172416063519923">பண்பு ஐடி:</translation>
 <translation id="3109728660330352905">இந்தப் பக்கத்தைக் காண உங்களுக்கு அங்கீகாரம் அளிக்கப்படவில்லை.</translation>
+<translation id="3116158981186517402">லேமினேட்</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />கனெக்டிவிட்டி டயக்னஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{ஏதுமில்லை}=1{1 கணக்கின் உள்நுழைவுத் தரவு}other{# கணக்குகளின் உள்நுழைவுத் தரவு}}</translation>
@@ -421,6 +448,7 @@
 <translation id="3169472444629675720">Discover</translation>
 <translation id="3174168572213147020">தீவு</translation>
 <translation id="3176929007561373547">ப்ராக்ஸி சர்வர் இயக்கத்தில் உள்ளது என்பதை உறுதிப்படுத்த உங்கள் ப்ராக்ஸி அமைப்புகளைச் சரிபார்க்கவும் அல்லது நெட்வொர்க் நிர்வாகியைத் தொடர்புகொள்ளவும். நீங்கள் ப்ராக்ஸி சர்வரைப் பயன்படுத்தலாம் என்பதில் நம்பிக்கை இல்லையென்றால், பின்வருவதைச் செய்யவும்:<ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">அக்கவுண்ட் பேலன்ஸ்</translation>
 <translation id="3195213714973468956"><ph name="SERVER_NAME" /> இல் <ph name="PRINTER_NAME" /></translation>
 <translation id="320323717674993345">கட்டணம் செலுத்துவதை ரத்துசெய்</translation>
 <translation id="3207960819495026254">புக்மார்க் செய்யப்பட்டது</translation>
@@ -490,6 +518,7 @@
 <translation id="358285529439630156">கிரெடிட் மற்றும் ப்ரீபெய்டு கார்டுகள் ஏற்கப்படுகின்றன.</translation>
 <translation id="3582930987043644930">பெயரைச் சேர்</translation>
 <translation id="3583757800736429874">&amp;நகர்த்தலை மீண்டும் செய்</translation>
+<translation id="3584299510153766161">டூயல் பஞ்ச் பாட்டம்</translation>
 <translation id="3586931643579894722">விவரங்களை மறை</translation>
 <translation id="3592413004129370115">Italian (என்வலப்)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -510,6 +539,9 @@
 <translation id="3678529606614285348">புதிய மறைநிலைச் சாளரத்தில் பக்கத்தைத் திறக்கவும் (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375"><ph name="CRASH_TIME" /> அன்று சிதைவு அறிக்கை பதிவுசெய்யப்பட்டு, <ph name="UPLOAD_TIME" /> அன்று பதிவேற்றப்பட்டது</translation>
 <translation id="3681007416295224113">சான்றிதழ் தகவல்</translation>
+<translation id="3688109723158850780">நீங்கள் செல்லும் <ph name="ORIGIN" /> சேவையகம் அதனுடன் தொடர்புடைய எல்லாக் கோரிக்கைகளுக்கும் அசல் கொள்கை பொருந்த வேண்டுமென கோரிக்கை விடுத்துள்ளது. ஆனால் கொள்கையை வழங்குவதற்கு பதிலாக இது உலாவியை வேறு இடத்திற்கு திசைதிருப்பியுள்ளது. இதனால் <ph name="SITE" /> இணையதளத்திற்கான உங்கள் கோரிக்கையை நிறைவுசெய்ய முடியாத வகையில் உலாவி தடுக்கப்பட்டுள்ளது. இணையதள ஆப்ரேட்டர்கள் 
+இணையதளத்திற்கான பாதுகாப்பையும் மற்ற பண்புகளையும் உள்ளமைக்க அசல்
+ கொள்கைகளைப் பயன்படுத்தலாம்.</translation>
 <translation id="3701427423622901115">மீட்டமைத்தல் ஏற்கப்பட்டது.</translation>
 <translation id="3704162925118123524">நீங்கள் பயன்படுத்திக் கொண்டிருக்கும் நெட்வொர்க், அதன் உள்நுழைவுப் பக்கத்தை நீங்கள் பார்க்கக் கோரலாம்.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -542,6 +574,7 @@
 <translation id="382518646247711829">நீங்கள் பிராக்சி சர்வரைப் பயன்படுத்தினால்....</translation>
 <translation id="3828924085048779000">வெற்று கடவுச்சொற்றொடருக்கு அனுமதியில்லை.</translation>
 <translation id="3831915413245941253">கூடுதல் செயல்பாடுகளுக்காக <ph name="ENROLLMENT_DOMAIN" /> நீட்டிப்புகளை நிறுவியுள்ளது. உங்கள் தரவில் சிலவற்றை இந்த நீட்டிப்புகள் அணுகும்.</translation>
+<translation id="3832522519263485449">மல்டிப்பில் பஞ்ச் லெஃப்ட்</translation>
 <translation id="385051799172605136">முந்தைய பக்கம்</translation>
 <translation id="3858027520442213535">தேதியையும் நேரத்தையும் புதுப்பி</translation>
 <translation id="3884278016824448484">முரண்பாடான சாதன அடையாளங்காட்டி</translation>
@@ -563,6 +596,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> தடுக்கப்பட்டுள்ளது</translation>
 <translation id="3981540111851280311">உங்கள் உலாவியில் Chrome Enterprise Threat Protectionனை <ph name="ENROLLMENT_DOMAIN" /> இயக்கியுள்ளது. உங்களின் சில தரவை Chrome Enterprise Threat Protectionனால் அணுக முடியும்.</translation>
 <translation id="3987940399970879459">1 மெ.பை. அளவை விடக் குறைவாக உள்ளது</translation>
+<translation id="3990250421422698716">ஜாக் ஆஃப்செட்</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{அருகில் ஒரு இணையப் பக்கம் உள்ளது}other{அருகில் # இணையப் பக்கங்கள் உள்ளன}}</translation>
 <translation id="4030383055268325496">&amp;சேர்த்தலைச் செயல்தவிர்</translation>
 <translation id="4032320456957708163">உங்கள் உலாவியை <ph name="ENROLLMENT_DOMAIN" /> நிர்வகிக்கிறது</translation>
@@ -583,6 +617,7 @@
 <translation id="4112140312785995938">பின்செல்</translation>
 <translation id="4116663294526079822">இந்தத் தளத்தில் எப்போதும் அனுமதி</translation>
 <translation id="4117700440116928470">கொள்கையின் நோக்கம் ஆதரிக்கப்படவில்லை.</translation>
+<translation id="4123572138124678573">டிரிப்பில் பஞ்ச் பாட்டம்</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{மேலும் ஒன்று}other{மேலும் #}}</translation>
 <translation id="4130226655945681476">நெட்வொர்க் கேபிள்கள், மோடம், ரூட்டர் ஆகியவற்றைச் சரிபார்க்கவும்</translation>
 <translation id="413544239732274901">மேலும் அறிக</translation>
@@ -619,6 +654,7 @@
     &lt;h4&gt;படி 5: கூடுதல் உதவி பெறுங்கள்&lt;/h4&gt;
     &lt;p&gt;அப்போதும் பிழை வந்தால், இணையதள உரிமையாளரைத் தொடர்புகொள்ளவும்.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />நெட்வொர்க் டயக்னாஸ்டிக்ஸ் கருவியை இயக்கவும்<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />இணைப்பிற்கு செல்க <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">செல்லுபடியானது</translation>
 <translation id="4250431568374086873">இந்தத் தளத்திற்கான உங்கள் இணைப்பு, முழுப் பாதுகாப்புடன் இல்லை</translation>
 <translation id="4250680216510889253">இல்லை</translation>
@@ -632,6 +668,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{இந்தக் கார்டு உங்கள் Google கணக்கில் சேமிக்கப்பட்டது}other{இந்தக் கார்டுகள் உங்கள் Google கணக்கில் சேமிக்கப்பட்டன}}</translation>
 <translation id="428847186335018806">Chromeமில் நீங்கள் பதிவேற்றும் அல்லது பதிவிறக்கும் கோப்புகளை ஸ்கேன் செய்யும்.</translation>
 <translation id="42981349822642051">விரி</translation>
+<translation id="4300675098767811073">மல்டிப்பில் பஞ்ச் ரைட்</translation>
 <translation id="4302965934281694568">Chou3 (என்வலப்)</translation>
 <translation id="4305817255990598646">மாறு</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -646,6 +683,7 @@
 <translation id="4356973930735388585">இந்தத் தளத்தில் உள்ள தீங்கிழைப்பவர்கள், உங்கள் தகவலைத் (எடுத்துக்காட்டு: படங்கள், கடவுச்சொற்கள், செய்திகள் மற்றும் கிரெடிட் கார்டுகள்) திருடக்கூடிய அல்லது நீக்கக்கூடிய தீங்கிழைக்கும் நிரல்களை உங்கள் கம்ப்யூட்டரில் நிறுவ முயலலாம்.</translation>
 <translation id="4358461427845829800">கட்டண முறைகளை நிர்வகி...</translation>
 <translation id="4367563149485757821">Number-12 (என்வலப்)</translation>
+<translation id="437058704415269440">அக்கவுண்ட் பேலன்ஸ்</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">எதிர்பார்த்த <ph name="VALUE_TYPE" /> மதிப்பு.</translation>
 <translation id="4377125064752653719"><ph name="DOMAIN" /> ஐ அடைய முயற்சி செய்தீர்கள். ஆனால் சேவையகம் வழங்கிய சான்றிதழானது அதன் வழங்குநரால் நிராகரிக்கப்பட்டது. அதாவது, சேவையகம் வழங்கிய பாதுகாப்பு நம்பிக்கைச்சான்றுகளை நிச்சயமாக எக்காரணத்தைக்கொண்டும் நம்பக்கூடாது. போலியான ஒன்றுடன் நீங்கள் தகவல் பரிமாற்றம் செய்துகொண்டிருக்கக்கூடும்.</translation>
@@ -687,8 +725,10 @@
 <translation id="4594403342090139922">&amp;நீக்குதலைச் செயல்தவிர்</translation>
 <translation id="4597348597567598915">அளவு: 8</translation>
 <translation id="4600854749408232102">C6/C5 (என்வலப்)</translation>
+<translation id="4635654612248442824"><ph name="ORIGIN" /> இணையதளம் அதனுடன் தொடர்புடைய எல்லாக் கோரிக்கைகளுக்கும் அசல் கொள்கை பொருந்த வேண்டுமெனக் கோரிக்கை விடுத்துள்ளது, ஆனால் தற்சமயம் அது சாத்தியமில்லை.</translation>
 <translation id="464342062220857295">தேடல் அம்சங்கள்</translation>
 <translation id="4646534391647090355">அங்கே செல்</translation>
+<translation id="4658638640878098064">ஸ்டேப்பில் டாப் லெஃப்ட்</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழில் பிழைகள் உள்ளன. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
 <translation id="467809019005607715">Google ஸ்லைடு</translation>
@@ -710,6 +750,7 @@
 <translation id="4756388243121344051">&amp;வரலாறு</translation>
 <translation id="4758311279753947758">தொடர்புத் தகவலைச் சேர்</translation>
 <translation id="4764776831041365478"><ph name="URL" /> இல் உள்ள வலைப்பக்கமானது தற்காலிகமாக இயங்காமல் இருக்கலாம் அல்லது அது ஒரு புதிய வலை முகவரிக்கு நிரந்தரமாக நகர்த்தப்பட்டிருக்கலாம்.</translation>
+<translation id="4766713847338118463">டூயல் ஸ்டேப்பில் பாட்டம்</translation>
 <translation id="4771973620359291008">அறியப்படாத பிழை ஏற்பட்டுள்ளது.</translation>
 <translation id="4780900888022378816">உங்கள் சாதனத்தை நிர்வகிப்பது: <ph name="ENROLLMENT_DOMAIN" />, கணக்கை நிர்வகிப்பது: <ph name="ACCOUNT_DOMAIN" />.</translation>
 <translation id="4785689107224900852">இந்தத் தாவலுக்கு மாற்றும்</translation>
@@ -732,6 +773,7 @@
 <translation id="4880827082731008257">தேடல் வரலாறு</translation>
 <translation id="4881695831933465202">திற</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">பஞ்ச் டாப் லெஃப்ட்</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{மேலும் ஒரு இணையப் பக்கம்}other{மேலும் # இணையப் பக்கங்கள்}}</translation>
 <translation id="4923417429809017348">ஒரு அறியப்படாத மொழியிலிருந்து <ph name="LANGUAGE_LANGUAGE" /> -க்கு இந்தப் பக்கம் மொழிபெயர்க்கப்பட்டுள்ளது</translation>
 <translation id="4923459931733593730">கட்டண முறை</translation>
@@ -743,6 +785,7 @@
 <translation id="495170559598752135">செயல்கள்</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">பட்டியலை விரி</translation>
+<translation id="4973922308112707173">டூயல் பஞ்ச் டாப்</translation>
 <translation id="4974590756084640048">எச்சரிக்கைகளை மீண்டும் இயக்கு</translation>
 <translation id="4984339528288761049">Prc5 (என்வலப்)</translation>
 <translation id="4989163558385430922">எல்லாம் காட்டு</translation>
@@ -770,6 +813,7 @@
 <translation id="5087286274860437796">தற்போது சேவையகத்தின் சான்றிதழ் செல்லுபடியாகாது.</translation>
 <translation id="5087580092889165836">கார்டைச் சேர்</translation>
 <translation id="5089810972385038852">மாநிலம்</translation>
+<translation id="5093232627742069661">Z-ஃபோல்டு</translation>
 <translation id="5094747076828555589">இது <ph name="DOMAIN" /> தான் என்பதை இந்தச் சேவையகம் உறுதிப்படுத்தவில்லை; இதன் பாதுகாப்புச் சான்றிதழை Chromium நம்பவில்லை. இது தவறான உள்ளமைவால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
 <translation id="5095208057601539847">பிராந்தியம்</translation>
 <translation id="5097099694988056070">CPU/RAM உபயோகம் போன்ற சாதனப் புள்ளிவிவரங்கள்</translation>
@@ -806,6 +850,9 @@
 <translation id="5251803541071282808">கிளவுடு</translation>
 <translation id="5252000469029418751">C7 (என்வலப்)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">பேமெண்ட் நிறைவடைந்தது</translation>
+<translation id="5266128565379329178">பைண்டு டாப்</translation>
+<translation id="5269225904387178860">குவாட் பஞ்ச் பாட்டம்</translation>
 <translation id="5269999699920406580">சிஸ்டம் முழுவதிலும் பயன்படுத்தப்படும் அம்சங்களை உரிமையாளரால் மட்டுமே அமைக்க முடியும்: <ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">எச்சரிக்கை: இது ஒன்றிணைக்கப்படக்கூடிய டிக்‌ஷனரி கொள்கைகளைச் சேர்ந்ததல்ல என்பதால் PolicyDictionaryMultipleSourceMergeList கொள்கையில் குறிப்பிட்டுள்ளபடி ஒன்றிணைக்கப்படவில்லை.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -818,6 +865,7 @@
 <translation id="5300589172476337783">காண்பி</translation>
 <translation id="5308380583665731573">இணை</translation>
 <translation id="5308689395849655368">செயலிழப்பு புகாரளித்தல் முடக்கப்பட்டுள்ளது.</translation>
+<translation id="5314967030527622926">புக்லெட் மேக்கர்</translation>
 <translation id="5317780077021120954">சேமி</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="NUM_MATCHES" /> இல் <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">தொடர்புத் தகவலைத் தேர்வு செய்</translation>
@@ -833,6 +881,7 @@
 <translation id="5384855140246857529">உங்கள் சாதனங்கள் அனைத்திலும் உங்கள் கார்டுகளைப் பயன்படுத்த, உள்நுழைந்து, ஒத்திசைவை இயக்கவும்.</translation>
 <translation id="5386426401304769735">இந்தச் சான்றிதழ் சங்கிலியில், SHA-1ஐப் பயன்படுத்தி கையொப்பமிடப்பட்ட சான்றிதழ் உள்ளது.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">எட்ஜ் ஸ்டிட்ச் ரைட்</translation>
 <translation id="540969355065856584"><ph name="DOMAIN" /> டொமைனை, சேவையகம் உறுதிப்படுத்தவில்லை; அதற்கான காரணங்கள்: இதன் பாதுகாப்புச் சான்றிதழ் தற்போது செல்லுபடியானதல்ல. இது தவறான உள்ளமைவினால் ஏற்பட்டிருக்கலாம் அல்லது தீங்கிழைப்பவர் உங்கள் இணைப்பில் குறுக்கிட்டிருக்கலாம்.</translation>
 <translation id="5421136146218899937">உலாவிய தரவை அழி...</translation>
 <translation id="5430298929874300616">புத்தகக்குறியை அகற்று</translation>
@@ -857,6 +906,7 @@
 <translation id="5510766032865166053">அது நகர்த்தப்பட்டிருக்கலாம் அல்லது நீக்கப்பட்டிருக்கலாம்.</translation>
 <translation id="5523118979700054094">கொள்கைப் பெயர்</translation>
 <translation id="552553974213252141">உரையானது சரியான முறையில் பிரித்தெடுக்கப்பட்டதா?</translation>
+<translation id="55293785478302737">எட்ஜ் ஸ்டிட்ச்</translation>
 <translation id="553484882784876924">Prc6 (என்வலப்)</translation>
 <translation id="5540224163453853">கோரப்பட்ட கட்டுரையைக் கண்டுபிடிக்க முடியவில்லை.</translation>
 <translation id="5541546772353173584">மின்னஞ்சலைச் சேர்க்கவும்</translation>
@@ -925,6 +975,7 @@
 <translation id="5893752035575986141">கிரெடிட் கார்டுகள் ஏற்கப்படுகின்றன.</translation>
 <translation id="5895138241574237353">மறுதொடக்கம்</translation>
 <translation id="5901630391730855834">மஞ்சள்</translation>
+<translation id="5905445707201418379"><ph name="ORIGIN" /> இன் அசல் கொள்கையின்படி தடுக்கப்பட்டுள்ளது.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (ஒத்திசைக்கப்பட்டது)</translation>
 <translation id="5916664084637901428">இயக்கு</translation>
 <translation id="59174027418879706">இயக்கப்பட்டது</translation>
@@ -943,6 +994,7 @@
 <translation id="598637245381783098">பேமெண்ட் பயன்பாட்டைத் திறக்க முடியவில்லை</translation>
 <translation id="5989320800837274978">ப்ராக்ஸி சேவையகம் சரிசெய்யப்படவும் இல்லை .pac ஸ்கிரிப்ட் URL குறிப்பிடப்படவுமில்லை.</translation>
 <translation id="5990559369517809815">சேவையகத்திற்கான கோரிக்கைகள் நீட்டிப்பினால் தடுக்கப்பட்டது.</translation>
+<translation id="5992691462791905444">இன்ஜினியரிங் Z-ஃபோல்டு</translation>
 <translation id="6000758707621254961">'<ph name="SEARCH_TEXT" />'க்கு <ph name="RESULT_COUNT" /> முடிவுகள் உள்ளன</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">ஆண்டு</translation>
@@ -951,8 +1003,11 @@
 <translation id="6017850046339264347"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> எனும் தளத்தில் உள்ள தீங்கிழைப்பவர்கள், ஏமாற்றக்கூடிய ஆப்ஸை (இவை வேறு ஏதோவொன்றைப் போல போலியாகத் தோற்றமளிக்கும் அல்லது உங்களை டிராக் செய்வதற்குப் பயன்படுத்தக்கூடிய தரவைச் சேகரிக்கும்) நிறுவலாம். <ph name="BEGIN_LEARN_MORE_LINK" />மேலும் அறிக<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (ஒத்திசைக்கப்பட்டன)</translation>
 <translation id="6027201098523975773">பெயரை உள்ளிடவும்</translation>
+<translation id="603068602130820122">டூயல் ஸ்டேப்பில் ரைட்</translation>
+<translation id="6032955021262906325">பைண்டு லெஃப்ட்</translation>
 <translation id="6034000775414344507">வெளிர் சாம்பல்</translation>
 <translation id="6034283069659657473">10x14 (என்வலப்)</translation>
+<translation id="6034514109191629503">அக்கார்டியன் ஃபோல்டு</translation>
 <translation id="6039846035001940113">சிக்கல் தொடர்ந்தால், தள உரிமையாளரைத் தொடர்புகொள்ளவும்.</translation>
 <translation id="6040143037577758943">மூடு</translation>
 <translation id="6044573915096792553">அளவு: 12</translation>
@@ -963,12 +1018,14 @@
 <translation id="6058977677006700226">உங்கள் சாதனங்கள் அனைத்திலும் உங்கள் கார்டுகளைப் பயன்படுத்தவா?</translation>
 <translation id="6059925163896151826">USB சாதனங்கள்</translation>
 <translation id="6060009363608157444">தவறான DnsOverHttps பயன்முறை.</translation>
+<translation id="6064217302520318294">திரைப் பூட்டு</translation>
 <translation id="6080696365213338172">நிர்வாகி வழங்கிய சான்றிதழைப் பயன்படுத்தி உள்ளடக்கத்தை அணுகியுள்ளீர்கள். <ph name="DOMAIN" /> க்கு நீங்கள் வழங்கிய தரவானது உங்கள் நிர்வாகியால் இடைமறிக்கப்படலாம்.</translation>
 <translation id="6094273045989040137">விரிவுரைப் பயன்முறை</translation>
 <translation id="610911394827799129"><ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> என்ற முகவரியில், உங்கள் Google கணக்கிற்கான பிற வகை உலாவல் வரலாறும் இருக்கக்கூடும்</translation>
 <translation id="6132597952260690497">நிறுவப்பட்டுள்ள நீட்டிப்புகளையும் செருகுநிரல்களையும் குறித்த தகவல்கள்</translation>
 <translation id="6146055958333702838">கேபிள்களைச் சரிபார்த்து, நீங்கள் பயன்படுத்தக்கூடிய ரூட்டர்கள், மோடம்கள் அல்லது பிற நெட்வொர்க் சாதனங்களை மறுதொடக்கம் செய்யவும்.</translation>
 <translation id="614940544461990577">இவற்றைச் செய்து பார்க்கவும்:</translation>
+<translation id="6150036310511284407">டிரிப்பில் பஞ்ச் லெஃப்ட்</translation>
 <translation id="6151417162996330722">சேவை சான்றிதழ் நீண்ட செல்லுபடிக் காலத்தைக் கொண்டுள்ளது.</translation>
 <translation id="6157877588268064908">ஷிப்பிங் முறைகளையும் தேவைகளையும் பார்க்க, முகவரியைத் தேர்ந்தெடுக்கவும்</translation>
 <translation id="6165508094623778733">மேலும் அறிக</translation>
@@ -976,7 +1033,9 @@
 <translation id="6177128806592000436">இந்தத் தளத்திற்கான உங்கள் இணைப்பு, பாதுகாப்பாக இல்லை</translation>
 <translation id="6203231073485539293">உங்கள் இணைய இணைப்பைச் சரிபார்க்கவும்</translation>
 <translation id="6218753634732582820">Chromium இலிருந்து முகவரியை அகற்றவா?</translation>
+<translation id="622039917539443112">பேரலல் ஃபோல்டு</translation>
 <translation id="6221345481584921695">Google பாதுகாப்பு உலாவலானது, சமீபத்தில் <ph name="SITE" /> இல் <ph name="BEGIN_LINK" />தீம்பொருள் உள்ளதைக் கண்டுபிடித்தது<ph name="END_LINK" />. இயல்பாகவே பாதுகாப்பாக இருக்கும் இணையதளங்களும் சில சமயங்களில் தீம்பொருளினால் பாதிக்கப்பட்டிருக்கும். தீங்குவிளைவிக்கும் உள்ளடக்கமானது தீம்பொருளைப் பகிர்பவர் என அழைக்கப்படும் <ph name="SUBRESOURCE_HOST" /> இலிருந்து வருகிறது.</translation>
+<translation id="6234122620015464377">டிரிம் ஆஃப்டர் ஈச் டாக்குமெண்ட்</translation>
 <translation id="6240447795304464094">Google Pay லோகோ</translation>
 <translation id="6251924700383757765">தனியுரிமைக் கொள்கை</translation>
 <translation id="6254436959401408446">பக்கத்தைத் திறப்பதற்குப் போதுமான நினைவகம் இல்லை</translation>
@@ -1002,17 +1061,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{எதுவுமில்லை}=1{1 கடவுச்சொல் (டொமைன்கள்: <ph name="DOMAIN_LIST" />, ஒத்திசைக்கப்பட்டது)}=2{2 கடவுச்சொற்கள் (டொமைன்கள்: <ph name="DOMAIN_LIST" />, ஒத்திசைக்கப்பட்டன)}other{# கடவுச்சொற்கள் (டொமைன்கள்: <ph name="DOMAIN_LIST" />, ஒத்திசைக்கப்பட்டன)}}</translation>
 <translation id="6358450015545214790">இவற்றின் பொருள் என்ன?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">டூயல் ஸ்டேப்பில் லெஃப்ட்</translation>
 <translation id="6377268785556383139">'<ph name="SEARCH_TEXT" />'க்கு 1 முடிவு உள்ளது</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">கட்டணங்கள் விதிக்கப்படச் சாத்தியமுள்ளது.</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{மேலும் 1 பரிந்துரை}other{மேலும் # பரிந்துரைகள்}}</translation>
 <translation id="6387754724289022810">அடுத்த முறை விரைவாகப் பணம் அனுப்ப, உங்கள் கார்டையும் பில்லிங் முகவரியையும் Google கணக்கிலும் இந்தச் சாதனத்திலும் சேமிக்கவும்.</translation>
+<translation id="6390200185239044127">Z-ஃபோல்டு ஹாஃப்</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">இது தடுக்கப்பட்ட கொள்கை. இதற்குப் பதிலாக <ph name="NEW_POLICY" /> கொள்கையைப் பயன்படுத்த வேண்டும்.</translation>
 <translation id="6404511346730675251">புக்மார்க்களைத் திருத்து</translation>
 <translation id="6406765186087300643">C0 (என்வலப்)</translation>
 <translation id="6410264514553301377"><ph name="CREDIT_CARD" />க்கான காலாவதித் தேதியையும் CVC எண்ணையும் உள்ளிடவும்</translation>
 <translation id="6415778972515849510">உங்கள் Google கணக்கைப் பாதுகாக்கவும் கடவுச்சொல்லை மாற்றவும் Chromium உதவும்.</translation>
+<translation id="6427730057873428458">கேட் ஃபோல்டு</translation>
 <translation id="6431585503458005759">சேமிக்க வேண்டாம்</translation>
 <translation id="6433490469411711332">தொடர்புத் தகவலை மாற்று</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> இணைக்க மறுத்தது.</translation>
@@ -1023,6 +1085,7 @@
 <translation id="6446608382365791566">மேலும் தகவலைச் சேர்க்கவும்</translation>
 <translation id="6447842834002726250">குக்கீகள்</translation>
 <translation id="6451458296329894277">படிவ மறுசமர்ப்பிப்பை உறுதிசெய்க</translation>
+<translation id="6457206614190510200">சேடில் ஸ்டிட்ச்</translation>
 <translation id="6465306955648956876">கடவுச்சொற்களை நிர்வகி...</translation>
 <translation id="647261751007945333">சாதனக் கொள்கைகள்</translation>
 <translation id="6476284679642588870">கட்டண முறைகளை நிர்வகி</translation>
@@ -1037,9 +1100,11 @@
 <translation id="6529602333819889595">&amp;நீக்குதலை மீண்டும் செய்</translation>
 <translation id="6534179046333460208">இயல்நிலை இணையப் பரிந்துரைகள்</translation>
 <translation id="6545864417968258051">புளூடூத் ஸ்கேனிங்</translation>
+<translation id="6547208576736763147">டூயல் பஞ்ச் லெஃப்ட்</translation>
 <translation id="6554795675067793129">உங்கள் கணக்கை நிர்வகிப்பது: <ph name="ENROLLMENT_DOMAIN" />.</translation>
 <translation id="6556866813142980365">மீண்டும் செய்</translation>
 <translation id="6569060085658103619">நீட்டிப்புப் பக்கத்தைப் பார்க்கிறீர்கள்</translation>
+<translation id="6573200754375280815">டூயல் பஞ்ச் ரைட்</translation>
 <translation id="6578796323535178455">C2 (என்வலப்)</translation>
 <translation id="6579990219486187401">வெளிர் பிங்க் நிறம்</translation>
 <translation id="6583674473685352014">B6 (என்வலப்)</translation>
@@ -1058,6 +1123,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{எதுவுமில்லை}=1{1 தளத்திலிருந்து (உங்கள் Google கணக்கிலிருந்து வெளியேறமாட்டீர்கள்)}other{# தளங்களிலிருந்து (உங்கள் Google கணக்கிலிருந்து வெளியேறமாட்டீர்கள்)}}</translation>
 <translation id="6652101503459149953">Windows Helloவைப் பயன்படுத்து</translation>
 <translation id="6657585470893396449">கடவுச்சொல்</translation>
+<translation id="6665553082534466207">டிரிப்பில் பஞ்ச் ரைட்</translation>
 <translation id="6670613747977017428">பாதுகாப்பான நிலைக்குத் திரும்பு.</translation>
 <translation id="6671697161687535275">Chromium இலிருந்து படிவப் பரிந்துரையை அகற்றவா?</translation>
 <translation id="6685834062052613830">வெளியேறி, அமைப்பை முடிக்கவும்</translation>
@@ -1278,6 +1344,7 @@
 <translation id="7764225426217299476">முகவரியைச் சேர்</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">ப்ரீஃபெக்சர்</translation>
+<translation id="7791196057686275387">பேல்</translation>
 <translation id="7791543448312431591">சேர்</translation>
 <translation id="7800304661137206267">செய்தி அங்கீகரிப்பிற்காக, <ph name="KX" /> ஐ விசைப் பரிமாற்ற செயல்முறையாகக் கொண்டு, <ph name="MAC" /> உடன் <ph name="CIPHER" /> ஐப் பயன்படுத்தி இணைப்பானது என்க்ரிப்ட் செய்யப்பட்டது.</translation>
 <translation id="7802523362929240268">தளமானது சட்டப்பூர்வமானது</translation>
@@ -1298,22 +1365,27 @@
 <translation id="7882421473871500483">பழுப்பு</translation>
 <translation id="7887683347370398519">CVCஐச் சோதித்து, மீண்டும் முயற்சிக்கவும்</translation>
 <translation id="7904208859782148177">C3 (என்வலப்)</translation>
+<translation id="7932579305932748336">கோட்</translation>
 <translation id="79338296614623784">சரியான ஃபோன் எண்ணை உள்ளிடவும்</translation>
+<translation id="7934052535022478634">பேமெண்ட் நிறைவடைந்தது</translation>
 <translation id="7935318582918952113">DOM டிஸ்டில்லர்</translation>
 <translation id="7937554595067888181"><ph name="EXPIRATION_DATE_ABBR" /> அன்று காலாவதியாகும்</translation>
 <translation id="7938958445268990899">சேவையகச் சான்றிதழ் இன்னும் செல்லுபடியாகவில்லை.</translation>
 <translation id="7942349550061667556">சிவப்பு</translation>
 <translation id="7947285636476623132">காலாவதி ஆண்டைச் சரிபார்த்து, மீண்டும் முயலவும்</translation>
 <translation id="7951415247503192394">(32-பிட்)</translation>
+<translation id="7953569069500808819">எட்ஜ் ஸ்டிட்ச் டாப்</translation>
 <translation id="7956713633345437162">மொபைல் புக்மார்க்குகள்</translation>
 <translation id="7961015016161918242">எப்போதும் இல்லை</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">பைண்டு</translation>
 <translation id="7995512525968007366">குறிப்பிடப்படவில்லை</translation>
 <translation id="800218591365569300">பிற தாவல்கள் அல்லது நிரல்களை மூடி, நினைவகத்தைக் காலியாக்கவும்.</translation>
 <translation id="8004582292198964060">உலாவி</translation>
 <translation id="8009225694047762179">கடவுச்சொற்களை நிர்வகி</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{இந்தக் கார்டும் அதன் பில்லிங் முகவரியும் சேமிக்கப்படும். <ph name="USER_EMAIL" /> இல் உள்நுழைந்திருக்கும்போது இதைப் பயன்படுத்தலாம்.}other{இந்தக் கார்டுகளும் அவற்றின் பில்லிங் முகவரிகளும் சேமிக்கப்படும். <ph name="USER_EMAIL" /> இல் உள்நுழைந்திருக்கும்போது இவற்றைப் பயன்படுத்தலாம்.}}</translation>
 <translation id="8025119109950072390">இந்தத் தளத்தில் உள்ள ஹேக்கர்கள், உங்களை ஏமாற்றி, மென்பொருளை நிறுவுவது அல்லது தனிப்பட்ட தகவலை (எடுத்துக்காட்டாக, கடவுச்சொற்கள், ஃபோன் எண்கள் அல்லது கிரெடிட் கார்டுகள்) வெளிப்படுத்துவது போன்ற உங்களுக்கு ஆபத்தை விளைவிக்கும் செயல்களைச் செய்ய வைக்கலாம்.</translation>
+<translation id="8028960012888758725">டிரிம் ஆஃப்டர் ஜாப்</translation>
 <translation id="8034522405403831421">இந்தப் பக்கம் <ph name="SOURCE_LANGUAGE" /> மொழியில் உள்ளது. இதை <ph name="TARGET_LANGUAGE" /> க்கு மொழிபெயர்க்கவா?</translation>
 <translation id="8035152190676905274">பேனா</translation>
 <translation id="8037117624646282037">சமீபத்தில் சாதனத்தைப் பயன்படுத்தியவர்கள்</translation>
@@ -1328,6 +1400,7 @@
 <translation id="8074253406171541171">10x13 (என்வலப்)</translation>
 <translation id="8078141288243656252">சுழற்றப்பட்டுள்ளபோது ஆவணத்தில் விரிவுரையைச் சேர்க்க முடியாது</translation>
 <translation id="8079031581361219619">தளத்தை மீண்டும் ஏற்றவா?</translation>
+<translation id="8086971161893892807">வரைவு</translation>
 <translation id="8088680233425245692">கட்டுரையைக் காட்டுவதில் தோல்வி.</translation>
 <translation id="808894953321890993">கடவுச்சொல்லை மாற்று</translation>
 <translation id="8090403583893450254">அளவு: 20</translation>
@@ -1343,6 +1416,7 @@
 <translation id="8131740175452115882">உறுதிப்படுத்து</translation>
 <translation id="8149426793427495338">உங்கள் கம்ப்யூட்டர் உறக்கநிலைக்குச் சென்றது.</translation>
 <translation id="8150722005171944719"><ph name="URL" /> இல் உள்ள கோப்பு படிக்கக் கூடியதாக இல்லை. அது அகற்றப்பட்டிருக்கலாம், நகர்த்தப்பட்டிருக்கலாம் அல்லது கோப்பு அனுமதிகள் அணுகலைத் தடுத்திருக்கலாம்.</translation>
+<translation id="8163866351304776260">குவாட் பஞ்ச் லெஃப்ட்</translation>
 <translation id="8175796834047840627">உங்கள் Google கணக்கில் உள்நுழைந்திருப்பதால் Chrome உங்கள் கார்டுகளை இந்தக் கணக்கில் சேமிப்பதற்குக் கோருகிறது. இதை அமைப்புகளில் மாற்றலாம்.</translation>
 <translation id="8184538546369750125">முழுமையான இயல்புநிலையைப் பயன்படுத்து (அனுமதி)</translation>
 <translation id="8194797478851900357">&amp;நகர்த்தலைச் செயல்தவிர்</translation>
@@ -1365,6 +1439,7 @@
 <translation id="8253091569723639551">பில்லிங் முகவரி தேவை</translation>
 <translation id="825929999321470778">சேமித்த எல்லாக் கடவுச்சொற்களையும் காட்டு</translation>
 <translation id="8261506727792406068">நீக்கு</translation>
+<translation id="8262952874573525464">எட்ஜ் ஸ்டிட்ச் பாட்டம்</translation>
 <translation id="8267698848189296333"><ph name="USERNAME" /> ஆக உள்நுழைகிறீர்கள்</translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">உள்நுழை</translation>
@@ -1373,6 +1448,7 @@
 <translation id="8293206222192510085">புக்மார்க்கைச் சேர்</translation>
 <translation id="8294431847097064396">மூலம்</translation>
 <translation id="8298115750975731693">நீங்கள் பயன்படுத்திக் கொண்டிருக்கும் (<ph name="WIFI_NAME" />) வைஃபை, அதன் <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />ஐ நீங்கள் பார்க்கக் கோரலாம்.</translation>
+<translation id="830498451218851433">ஃபோல்டு ஹாஃப்</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">நெட்வொர்க் இணைப்பில் ஒரு சிக்கல் இருப்பதால் மொழிபெயர்ப்பு தோல்வியடைந்தது.</translation>
 <translation id="8332188693563227489"><ph name="HOST_NAME" /> க்கான அணுகல் மறுக்கப்பட்டது</translation>
@@ -1401,6 +1477,7 @@
 <translation id="8461694314515752532">ஒத்திசைக்கப்பட்ட தரவை எனது ஒத்திசைவுக் கடவுச்சொற்றொடர் மூலம் என்கிரிப்ட் செய்</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 கிரெடிட் கார்டு}other{# கிரெடிட் கார்டுகள்}}</translation>
 <translation id="8473863474539038330">முகவரிகள் மற்றும் பல</translation>
+<translation id="8479754468255770962">ஸ்டேப்பில் பாட்டம் லெஃப்ட்</translation>
 <translation id="8483780878231876732">Google கணக்கில் உள்ள கார்டுகளைப் பயன்படுத்த, Chromeமில் உள்நுழையவும்</translation>
 <translation id="8488350697529856933">இதற்குப் பொருந்தும்</translation>
 <translation id="8498891568109133222"><ph name="HOST_NAME" /> பதிலளிக்க நீண்ட நேரம் எடுத்துக்கொண்டது.</translation>
@@ -1408,6 +1485,7 @@
 <translation id="8503813439785031346">பயனர்பெயர்</translation>
 <translation id="8508648098325802031">தேடல் ஐகான்</translation>
 <translation id="8522552481199248698">உங்கள் Google கணக்கைப் பாதுகாக்கவும் கடவுச்சொல்லை மாற்றவும் Chrome உதவும்.</translation>
+<translation id="8542014550340843547">டிரிப்பில் ஸ்டேப்பில் பாட்டம்</translation>
 <translation id="8543181531796978784"><ph name="BEGIN_ERROR_LINK" />கண்டறிவதில் சிக்கல் இருப்பதைப் புகாரளிக்கலாம்<ph name="END_ERROR_LINK" /> அல்லது உங்கள் பாதுகாப்பிற்கு ஏற்படக்கூடிய ஆபத்துகளைப் புரிந்துகொண்டிருந்தால், <ph name="BEGIN_LINK" />இந்தப் பாதுகாப்பற்ற தளத்திற்குச் செல்லலாம்<ph name="END_LINK" />.</translation>
 <translation id="8553075262323480129">பக்கத்தின் மொழியைத் தீர்மானிக்க முடியாததால் மொழிபெயர்ப்பு தோல்வியடைந்தது.</translation>
 <translation id="8557066899867184262">உங்கள் கார்டின் பின்புறத்தில் CVC எண் இருக்கும்.</translation>
@@ -1429,6 +1507,7 @@
 <translation id="8703575177326907206"><ph name="DOMAIN" /> க்கான உங்கள் இணைப்பு என்க்ரிப்ட் செய்யப்படவில்லை.</translation>
 <translation id="8718314106902482036">பேமெண்ட் முடியவில்லை</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, தேடல் பரிந்துரை</translation>
+<translation id="8719528812645237045">மல்டிப்பில் பஞ்ச் டாப்</translation>
 <translation id="8723954843026426558">விதிமுறைகள் &amp; நிபந்தனைகள், தனியுரிமைக் கொள்கை, <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> டொமைனைத் திரும்பப்பெறும் உரிமை ஆகியவற்றை ஏற்கிறேன்</translation>
 <translation id="8725066075913043281">மீண்டும் முயற்சிக்கவும்</translation>
 <translation id="8728672262656704056">மறைநிலைக்குச் சென்றுவிட்டீர்கள்</translation>
@@ -1447,6 +1526,7 @@
 <translation id="8792621596287649091"><ph name="ORG_NAME" /> கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும் அல்லது அடையாளத் திருட்டை எதிர்கொள்ளக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றும்படி Chromium பரிந்துரைக்கிறது.</translation>
 <translation id="8800988563907321413">உங்கள் அருகிலுள்ளவற்றுக்கான பரிந்துரைகள் இங்கே தோன்றும்</translation>
 <translation id="8805819170075074995">பட்டியல் உள்ளீடு "<ph name="LANGUAGE_ID" />": உள்ளீடானது SpellcheckLanguage கொள்கையிலும் சேர்க்கப்பட்டிருப்பதால் புறக்கணிக்கப்பட்டது.</translation>
+<translation id="8807160976559152894">டிரிம் ஆஃப்டர் ஈச் பேஜ்</translation>
 <translation id="8820817407110198400">புக்மார்க்குகள்</translation>
 <translation id="883848425547221593">மற்ற புக்மார்க்குகள்</translation>
 <translation id="884264119367021077">ஷிப்பிங் முகவரி</translation>
@@ -1454,6 +1534,7 @@
 <translation id="885730110891505394">Google உடன் பகிர்பவை</translation>
 <translation id="8858065207712248076">பிற தளங்களில் உங்கள் <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> கடவுச்சொல்லை மீண்டும் பயன்படுத்தினால், அதை மீட்டமைக்கும்படி Chrome பரிந்துரைக்கிறது.</translation>
 <translation id="8866481888320382733">கொள்கை அமைப்புகளை அலசுவதில் பிழை</translation>
+<translation id="8866928039507595380">ஃபோல்டு</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">சமீபத்தில் மூடியவை</translation>
 <translation id="8874824191258364635">சரியான கார்டு எண்ணை உள்ளிடவும்</translation>
@@ -1461,6 +1542,7 @@
 <translation id="8903921497873541725">பெரிதாக்கு</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google கணக்கு</translation>
+<translation id="892588693504540538">பஞ்ச் டாப் ரைட்</translation>
 <translation id="8931333241327730545">இந்தக் கார்டை உங்கள் Google கணக்கில் சேமிக்க வேண்டுமா?</translation>
 <translation id="8932102934695377596">உங்கள் கடிகாரம் மிகவும் பின்தங்கி இருக்கிறது</translation>
 <translation id="893332455753468063">பெயரைச் சேர்க்கவும்</translation>
@@ -1523,6 +1605,7 @@
 <translation id="9174917557437862841">இந்தத் தாவலுக்கு மாற, ’தாவல்’ மாற்ற பட்டனைத் தட்டி, ‘எண்டர்’ பட்டனை அழுத்தவும்</translation>
 <translation id="9183302530794969518">Google ஆவணம்</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> ஆதரிக்கப்படாத நெறிமுறையைப் பயன்படுத்துகிறது.</translation>
+<translation id="9191834167571392248">பஞ்ச் பாட்டம் லெஃப்ட்</translation>
 <translation id="9205078245616868884">உங்கள் தரவு உங்கள் ஒத்திசைவு கடவுச்சொற்றொடரைக் கொண்டு முறைமையாக்கப்பட்டுள்ளது. ஒத்திசைவைத் தொடங்க, அதை உள்ளிடவும்.</translation>
 <translation id="9207861905230894330">கட்டுரையைச் சேர்ப்பதில் தோல்வி.</translation>
 <translation id="9215416866750762878">இந்தத் தளத்துடன் Chrome பாதுகாப்பாக இணைவதை, ஆப்ஸ் தடுக்கிறது</translation>
@@ -1533,7 +1616,9 @@
 <translation id="936602727769022409">உங்கள் Google கணக்கிற்கான அணுகலை நீங்கள் இழக்கக்கூடும். இப்போதே உங்கள் கடவுச்சொல்லை மாற்றுமாறு Chromium பரிந்துரைக்கிறது. அதற்கு நீங்கள் உள்நுழைய வேண்டும்.</translation>
 <translation id="939736085109172342">புதிய கோப்புறை</translation>
 <translation id="945855313015696284">கீழுள்ள தகவல்களைச் சரிபார்த்து, செல்லுபடியாகாத கார்டுகள் ஏதேனும் இருந்தால் அவற்றை நீக்கவும்.</translation>
+<translation id="950736567201356821">டிரிப்பில் பஞ்ச் டாப்</translation>
 <translation id="951104842009476243">ஏற்கப்படும் டெபிட் மற்றும் ப்ரீபெய்டு கார்டுகள்</translation>
+<translation id="961663415146723894">பைண்டு பாட்டம்</translation>
 <translation id="962484866189421427">இந்த உள்ளடக்கம், வேறொரு பிரபல ஆப்ஸ் போலத் தோற்றமளிக்கக்கூடிய அல்லது உங்களைக் கண்காணிக்கப் பயன்படுத்தக்கூடிய தரவைச் சேகரிக்கும் போலியான ஆப்ஸை நிறுவ முயலலாம். <ph name="BEGIN_LINK" />பரவாயில்லை, பக்கத்தைக் காட்டு<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">அதிகாரப்பூர்வ கட்டமைப்பு</translation>
 <translation id="973773823069644502">டெலிவரி முகவரியைச் சேர்</translation>
diff --git a/components/strings/components_strings_te.xtb b/components/strings/components_strings_te.xtb
index 3e6acf4..eda2b04 100644
--- a/components/strings/components_strings_te.xtb
+++ b/components/strings/components_strings_te.xtb
@@ -963,6 +963,7 @@
 <translation id="6058977677006700226">మీ కార్డ్‌లను మీ అన్ని పరికరాలలో ఉపయోగించాలా?</translation>
 <translation id="6059925163896151826">USB పరికరాలు</translation>
 <translation id="6060009363608157444">చెల్లని DnsOverHttps మోడ్.</translation>
+<translation id="6064217302520318294">స్క్రీన్ లాక్</translation>
 <translation id="6080696365213338172">మీరు నిర్వాహకుని ద్వారా అందించబడిన ప్రమాణపత్రాన్ని ఉపయోగించి కంటెంట్‌ను యాక్సెస్ చేసారు. మీరు <ph name="DOMAIN" />కు అందించే డేటాకు మీ నిర్వాహకుని ద్వారా అంతరాయం ఏర్పడవచ్చు.</translation>
 <translation id="6094273045989040137">అదనపు గమనికను జోడించండి</translation>
 <translation id="610911394827799129">మీ Google ఖాతా <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" />లో ఇతర రూపాల్లో ఉన్న బ్రౌజింగ్ చరిత్రను కలిగి ఉండవచ్చు</translation>
diff --git a/components/strings/components_strings_th.xtb b/components/strings/components_strings_th.xtb
index 7be3150..b858e37 100644
--- a/components/strings/components_strings_th.xtb
+++ b/components/strings/components_strings_th.xtb
@@ -1017,6 +1017,7 @@
 <translation id="6058977677006700226">ต้องการใช้บัตรในอุปกรณ์ทุกเครื่องไหม</translation>
 <translation id="6059925163896151826">อุปกรณ์ USB</translation>
 <translation id="6060009363608157444">โหมด DnsOverHttps ไม่ถูกต้อง</translation>
+<translation id="6064217302520318294">ล็อกหน้าจอ</translation>
 <translation id="6080696365213338172">คุณเข้าถึงเนื้อหาโดยใช้ใบรับรองที่ผู้ดูแลระบบออกให้ ข้อมูลที่คุณให้กับ <ph name="DOMAIN" /> อาจถูกสกัดกั้นโดยผู้ดูแลระบบ</translation>
 <translation id="6094273045989040137">ใส่หมายเหตุ</translation>
 <translation id="610911394827799129">บัญชี Google อาจมีประวัติการท่องเว็บรูปแบบอื่นๆ ที่ <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_tr.xtb b/components/strings/components_strings_tr.xtb
index e3d98b7..fc0267b2 100644
--- a/components/strings/components_strings_tr.xtb
+++ b/components/strings/components_strings_tr.xtb
@@ -1030,6 +1030,7 @@
 <translation id="6058977677006700226">Kartlarınızı tüm cihazlarınızda kullanmak istiyor musunuz?</translation>
 <translation id="6059925163896151826">USB cihazları</translation>
 <translation id="6060009363608157444">Geçersiz DnsOverHttps modu.</translation>
+<translation id="6064217302520318294">Ekran kilidi</translation>
 <translation id="6080696365213338172">Yönetici tarafından sağlanmış bir sertifika kullanan içeriğe eriştiniz. <ph name="DOMAIN" /> alan adına sağladığınız verileri yöneticiniz görebilir ve bunlara müdahale edebilir.</translation>
 <translation id="6094273045989040137">Ek açıklama ekle</translation>
 <translation id="610911394827799129">Google Hesabınızın <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> adresinde başka biçimlerde tarama geçmişi olabilir</translation>
diff --git a/components/strings/components_strings_uk.xtb b/components/strings/components_strings_uk.xtb
index 15923eb..0301b8b 100644
--- a/components/strings/components_strings_uk.xtb
+++ b/components/strings/components_strings_uk.xtb
@@ -1018,6 +1018,7 @@
 <translation id="6058977677006700226">Використовувати картки на всіх ваших пристроях?</translation>
 <translation id="6059925163896151826">Пристрої USB</translation>
 <translation id="6060009363608157444">Недійсний режим DnsOverHttps.</translation>
+<translation id="6064217302520318294">Блокування екрана</translation>
 <translation id="6080696365213338172">Ви отримали доступ до вмісту, використовуючи наданий адміністратором сертифікат. Адміністратор може перехоплювати дані, які ви надасте домену <ph name="DOMAIN" />.</translation>
 <translation id="6094273045989040137">Додати примітку</translation>
 <translation id="610911394827799129">Історія веб-перегляду може також зберігатися у вашому обліковому записі Google на сторінці <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
diff --git a/components/strings/components_strings_vi.xtb b/components/strings/components_strings_vi.xtb
index ab6811fa..8a57e46e 100644
--- a/components/strings/components_strings_vi.xtb
+++ b/components/strings/components_strings_vi.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">Kết nối lại với Wi-Fi</translation>
 <translation id="1165039591588034296">Lỗi</translation>
 <translation id="1175364870820465910">&amp;In...</translation>
+<translation id="1175875016430184367">Dập 3 ghim bên phải</translation>
 <translation id="1178581264944972037">Tạm dừng</translation>
 <translation id="1181037720776840403">Xóa</translation>
 <translation id="1197088940767939838">Màu cam</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">Quét tìm phần mềm độc hại</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />Thử xóa các cookie của bạn<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">Tính năng sắp ngừng hoạt động</translation>
+<translation id="1314509827145471431">Đóng gáy bên phải</translation>
 <translation id="1320233736580025032">Prc1 (Phong bì)</translation>
 <translation id="132301787627749051">Tìm kiếm hình ảnh trong khay nhớ tạm</translation>
 <translation id="1323433172918577554">Xem thêm</translation>
 <translation id="132390688737681464">Lưu và điền địa chỉ</translation>
+<translation id="1330449323196174374">Gấp dạng cửa bên trái</translation>
 <translation id="1333989956347591814">Hoạt động của bạn <ph name="BEGIN_EMPHASIS" />có thể vẫn hiển thị<ph name="END_EMPHASIS" /> với:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />Trang web bạn truy cập
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">Giới thiệu Phiên bản</translation>
 <translation id="1376836354785490390">Ẩn bớt</translation>
 <translation id="1377321085342047638">Số thẻ</translation>
+<translation id="1380591466760231819">Gấp dạng phong thư</translation>
 <translation id="138218114945450791">Xanh lam nhạt</translation>
 <translation id="1382194467192730611">Thiết bị USB được quản trị viên của bạn cho phép</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> không gửi bất kỳ dữ liệu nào.</translation>
 <translation id="1405567553485452995">Xanh lục nhạt</translation>
 <translation id="1407135791313364759">Mở tất cả</translation>
+<translation id="1408787208417187241">Dập 3 ghim trên cùng</translation>
 <translation id="1413809658975081374">Lỗi bảo mật</translation>
 <translation id="1426410128494586442">Có</translation>
 <translation id="1430915738399379752">In</translation>
+<translation id="1442386063175183758">Gấp dạng cửa bên phải</translation>
+<translation id="1442987760062738829">Đục lỗ</translation>
 <translation id="1455413310270022028">Tẩy</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">Hiển thị thêm</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">Thẻ tín dụng và thẻ ghi nợ được chấp nhận</translation>
 <translation id="194030505837763158">Truy cập <ph name="LINK" /></translation>
 <translation id="1945968466830820669">Bạn có thể mất quyền truy cập vào tài khoản của tổ chức mình hoặc bị đánh cắp danh tính. Chromium khuyên bạn nên thay đổi mật khẩu ngay bây giờ.</translation>
+<translation id="1947454675006758438">Dập ghim trên cùng bên phải</translation>
 <translation id="1948773908305951926">Thẻ trả trước được chấp nhận</translation>
 <translation id="1962204205936693436">Dấu trang của <ph name="DOMAIN" /></translation>
 <translation id="1973335181906896915">Lỗi nối tiếp hóa</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">Xóa dữ liệu lịch sử duyệt web của Chrome</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{và 1 ứng dụng khác}other{và # ứng dụng khác}}</translation>
 <translation id="2003709556000175978">Đặt lại mật khẩu của bạn ngay bây giờ</translation>
+<translation id="2003775180883135320">Đục 4 lỗ trên cùng</translation>
 <translation id="2025186561304664664">Proxy được đặt thành định cấu hình tự động.</translation>
 <translation id="202813660234680402">Không, không thêm</translation>
 <translation id="2030481566774242610">Ý của bạn là <ph name="LINK" />?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">Âm thanh</translation>
 <translation id="2094505752054353250">Miền không khớp</translation>
 <translation id="2096368010154057602">Khu vực hành chính</translation>
+<translation id="2099652385553570808">Dập 3 ghim bên trái</translation>
 <translation id="2102134110707549001">Đề xuất mật khẩu mạnh…</translation>
 <translation id="2108755909498034140">Khởi động lại máy tính của bạn</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">Thẻ</translation>
 <translation id="2114841414352855701">Bỏ qua vì đã bị <ph name="POLICY_NAME" /> ghi đè.</translation>
 <translation id="2119505898009119320">Cấp cho: <ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">Đục lỗ dưới cùng bên phải</translation>
 <translation id="2129079103035905234">Cảm biến chuyển động</translation>
 <translation id="213826338245044447">Dấu trang trên thiết bị di động</translation>
 <translation id="214556005048008348">Hủy thanh toán</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">Số điện thoại</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 địa chỉ}other{# địa chỉ}}</translation>
 <translation id="2187317261103489799">Phát hiện (mặc định)</translation>
+<translation id="2188375229972301266">Đục nhiều lỗ dưới cùng</translation>
 <translation id="2202020181578195191">Nhập năm hết hạn hợp lệ</translation>
 <translation id="2212735316055980242">Không tìm thấy chính sách</translation>
 <translation id="2213606439339815911">Đang tìm nạp các mục nhập...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099">Sửa kết nối bằng <ph name="BEGIN_LINK" />ứng dụng chẩn đoán<ph name="END_LINK" /></translation>
 <translation id="2239100178324503013">Gửi bây giờ</translation>
 <translation id="2248949050832152960">Sử dụng WebAuthn</translation>
+<translation id="2250931979407627383">May viền ở bên trái</translation>
 <translation id="225207911366869382">Giá trị này không được dùng cho chính sách này nữa.</translation>
 <translation id="2257315177824333709">Rất tiếc, không thể lưu thẻ của bạn ngay bây giờ</translation>
 <translation id="2262243747453050782">Lỗi HTTP</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">Số điện thoại</translation>
 <translation id="2277103315734023688">Tua tiến</translation>
 <translation id="2283340219607151381">Lưu và điền địa chỉ</translation>
+<translation id="2289385804009217824">Cắt bỏ</translation>
 <translation id="2292556288342944218">Quyền truy cập Internet của bạn bị chặn</translation>
 <translation id="2297722699537546652">B5 (Phong bì)</translation>
 <translation id="2310021320168182093">Chou2 (Phong bì)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">Quản trị viên có thể thay đổi quy trình thiết lập trình duyệt của bạn từ xa. Hoạt động trên thiết bị này cũng có thể được quản lý bên ngoài Chrome. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này có thể đã bị thu hồi. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
+<translation id="2438874542388153331">Đục 4 lỗ bên phải</translation>
 <translation id="2463193859425327265">Thay đổi trang chủ</translation>
 <translation id="2463739503403862330">Điền</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">Chọn cách giao hàng</translation>
+<translation id="2465688316154986572">Dập ghim</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />Chạy Chẩn đoán mạng<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">Dịch trang này</translation>
 <translation id="2479410451996844060">URL tìm kiếm hợp lệ.</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">Bảo vệ tài khoản</translation>
 <translation id="2515335152965840738">BỎ QUA</translation>
 <translation id="2515629240566999685">Kiểm tra tín hiệu trong khu vực của bạn</translation>
+<translation id="2521385132275182522">Dập ghim dưới cùng bên phải</translation>
 <translation id="2523886232349826891">Chỉ lưu trên thiết bị này</translation>
 <translation id="2524461107774643265">Thêm thông tin khác</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{và 1 miền khác}other{và # miền khác}}</translation>
@@ -326,10 +343,20 @@
 <translation id="2618023639789766142">C10 (Phong bì)</translation>
 <translation id="2625385379895617796">Đồng hồ của bạn chạy nhanh</translation>
 <translation id="2634124572758952069">Không thể tìm thấy địa chỉ IP của máy chủ <ph name="HOST_NAME" />.</translation>
+<translation id="2638745661847473633">Máy chủ bạn định truy cập vào, <ph name="ORIGIN" />, đã yêu cầu phải
+    áp dụng một chính sách nguồn gốc cho tất cả các yêu cầu được gửi tới máy chủ đó. Tuy nhiên, máy chủ đó hiện
+    cung cấp một chính sách không hợp lệ. Điều này có nghĩa là trình duyệt không thể hoàn thành
+    yêu cầu truy cập vào <ph name="SITE" /> của bạn. Nhà điều hành trang web có thể
+    dựa vào chính sách nguồn gốc để định cấu hình bảo mật và các thuộc tính khác cho trang web.</translation>
 <translation id="2639739919103226564">Trạng thái:</translation>
 <translation id="2649204054376361687"><ph name="CITY" />, <ph name="COUNTRY" /></translation>
 <translation id="2650446666397867134">Truy cập vào tệp bị từ chối</translation>
 <translation id="2653659639078652383">Gửi</translation>
+<translation id="2660650542324841986">Máy chủ bạn định truy cập vào, <ph name="ORIGIN" />, đã yêu cầu phải
+    áp dụng một chính sách nguồn gốc cho tất cả các yêu cầu được gửi tới máy chủ đó. Tuy nhiên, máy chủ đó hiện
+    không cung cấp được chính sách. Điều này khiến trình duyệt không hoàn thành được
+    yêu cầu truy cập vào <ph name="SITE" /> của bạn. Nhà điều hành trang web có thể
+    dựa vào chính sách nguồn gốc để định cấu hình bảo mật và các thuộc tính khác cho trang web.</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{Không có}=1{1 mật khẩu (cho <ph name="DOMAIN_LIST" />)}=2{2 mật khẩu (cho <ph name="DOMAIN_LIST" />)}other{# mật khẩu (cho <ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">Đóng các tab hoặc ứng dụng khác</translation>
 <translation id="2674170444375937751">Bạn có chắc chắn muốn xóa những trang này khỏi lịch sử duyệt web của mình không?</translation>
@@ -344,6 +371,7 @@
 <translation id="2713444072780614174">Trắng</translation>
 <translation id="2720342946869265578">Lân cận</translation>
 <translation id="2721148159707890343">Yêu cầu đã thành công</translation>
+<translation id="272451190272506600">Chạm vào cảm biến để thanh toán</translation>
 <translation id="2728127805433021124">Chứng chỉ của máy chủ đã được ký bằng thuật toán chữ ký yếu.</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />Chạy Chẩn đoán kết nối<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">Khi bật các tính năng này, dữ liệu trên trình duyệt có thể bị mất hoặc
@@ -369,8 +397,10 @@
 <translation id="2847118875340931228">Mở cửa sổ ẩn danh</translation>
 <translation id="2850739647070081192">Invite (Phong bì)</translation>
 <translation id="2856444702002559011">Những kẻ tấn công có thể đang cố gắng đánh cắp thông tin của bạn từ <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> (ví dụ: mật khẩu, thư hoặc thẻ tín dụng). <ph name="BEGIN_LEARN_MORE_LINK" />Tìm hiểu thêm<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">Gấp kiểu áp phích</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">Lưu thẻ?</translation>
+<translation id="2882949212241984732">Gấp 2 cửa</translation>
 <translation id="2903493209154104877">Địa chỉ</translation>
 <translation id="290376772003165898">Trang này không được viết bằng <ph name="LANGUAGE" />?</translation>
 <translation id="2909946352844186028">Đã phát hiện thấy thay đổi mạng.</translation>
@@ -380,6 +410,7 @@
 <translation id="2925673989565098301">Phương thức giao hàng</translation>
 <translation id="2928905813689894207">Ðịa chỉ thanh toán</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> địa chỉ giao hàng khác}other{<ph name="SHIPPING_ADDRESS_PREVIEW" /> và <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> địa chỉ giao hàng khác}}</translation>
+<translation id="2930577230479659665">Cắt bỏ sau mỗi bản sao chép</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này là từ <ph name="DOMAIN2" />. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
 <translation id="2948083400971632585">Bạn có thể tắt mọi proxy được định cấu hình cho kết nối từ trang cài đặt.</translation>
@@ -393,6 +424,7 @@
 <translation id="2985398929374701810">Nhập địa chỉ hợp lệ</translation>
 <translation id="2986368408720340940">Phương thức nhận hàng này không có sẵn. Hãy thử một phương thức khác.</translation>
 <translation id="2987034854559945715">Không có tính năng nào phù hợp</translation>
+<translation id="2989742184762224133">Dập 2 ghim trên cùng</translation>
 <translation id="2991174974383378012">Chia sẻ với trang web</translation>
 <translation id="2991571918955627853">Bạn không thể truy cập vào <ph name="SITE" /> ngay bây giờ vì trang web sử dụng HSTS. Lỗi mạng và các cuộc tấn công mạng thường chỉ là tạm thời nên trang này có thể sẽ hoạt động lại sau.</translation>
 <translation id="3005723025932146533">Hiển thị bản sao đã lưu</translation>
@@ -411,6 +443,7 @@
 <translation id="3096100844101284527">Thêm địa chỉ nhận hàng</translation>
 <translation id="3105172416063519923">ID phần tử:</translation>
 <translation id="3109728660330352905">Bạn không có quyền xem trang này.</translation>
+<translation id="3116158981186517402">Dát mỏng</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />Thử chạy Chẩn đoán kết nối<ph name="END_LINK" />.</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{Không có}=1{dữ liệu đăng nhập cho 1 tài khoản}other{dữ liệu đăng nhập cho # tài khoản}}</translation>
@@ -426,6 +459,7 @@
       đảm bảo rằng máy chủ proxy đang hoạt động. Nếu bạn cho rằng mình không cần
       sử dụng máy chủ proxy:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">Số dư tài khoản</translation>
 <translation id="3195213714973468956"><ph name="PRINTER_NAME" /> trên <ph name="SERVER_NAME" /></translation>
 <translation id="320323717674993345">Hủy thanh toán</translation>
 <translation id="3207960819495026254">Đã đánh dấu trang</translation>
@@ -496,6 +530,7 @@
 <translation id="358285529439630156">Thẻ tín dụng và thẻ trả trước được chấp nhận.</translation>
 <translation id="3582930987043644930">Thêm tên</translation>
 <translation id="3583757800736429874">&amp;Làm lại di chuyển</translation>
+<translation id="3584299510153766161">Đục 2 lỗ dưới cùng</translation>
 <translation id="3586931643579894722">Ẩn chi tiết</translation>
 <translation id="3592413004129370115">Italian (Phong bì)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />, <ph name="DOMAIN" />, <ph name="TIME" /></translation>
@@ -516,6 +551,12 @@
 <translation id="3678529606614285348">Mở trang trong cửa sổ Ẩn danh mới (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">Báo cáo sự cố được ghi lại vào <ph name="CRASH_TIME" />, được tải lên vào <ph name="UPLOAD_TIME" /></translation>
 <translation id="3681007416295224113">Thông tin chứng chỉ</translation>
+<translation id="3688109723158850780">Máy chủ bạn định truy cập vào, <ph name="ORIGIN" />, đã yêu cầu phải
+    áp dụng một chính sách nguồn gốc cho tất cả các yêu cầu được gửi tới máy chủ đó. Tuy nhiên, thay vì
+    cung cấp chính sách thì máy chủ đó lại chuyển hướng trình duyệt tới nơi khác. Điều này khiến
+    trình duyệt không hoàn thành được yêu cầu truy cập vào <ph name="SITE" /> của bạn. Nhà điều hành
+    trang web có thể dựa vào chính sách nguồn gốc để định cấu hình bảo mật
+    và các thuộc tính khác cho trang web.</translation>
 <translation id="3701427423622901115">Đã xác nhận thao tác đặt lại.</translation>
 <translation id="3704162925118123524">Mạng mà bạn đang sử dụng có thể yêu cầu bạn phải truy cập trang đăng nhập của mạng đó.</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> <ph name="BOOKMARKED" /> <ph name="TITLE" /> <ph name="DOMAIN" /></translation>
@@ -548,6 +589,7 @@
 <translation id="382518646247711829">Nếu bạn sử dụng máy chủ proxy...</translation>
 <translation id="3828924085048779000">Không cho phép cụm mật khẩu trống.</translation>
 <translation id="3831915413245941253"><ph name="ENROLLMENT_DOMAIN" /> đã cài đặt các tiện ích để bổ sung thêm chức năng. Các tiện ích có quyền truy cập vào một số dữ liệu của bạn.</translation>
+<translation id="3832522519263485449">Đục nhiều lỗ bên trái</translation>
 <translation id="385051799172605136">Quay lại</translation>
 <translation id="3858027520442213535">Cập nhật ngày và giờ</translation>
 <translation id="3884278016824448484">Số nhận dạng thiết bị xung đột</translation>
@@ -569,6 +611,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> bị chặn</translation>
 <translation id="3981540111851280311"><ph name="ENROLLMENT_DOMAIN" /> đã bật tính năng Bảo vệ khỏi mối đe dọa của Chrome Enterprise trên trình duyệt. Tính năng Bảo vệ khỏi mối đe dọa của Chrome Enterprise có quyền truy cập vào một số dữ liệu của bạn.</translation>
 <translation id="3987940399970879459">Dưới 1 MB</translation>
+<translation id="3990250421422698716">Bù dịch chuyển</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{1 trang web lân cận}other{# trang web lân cận}}</translation>
 <translation id="4030383055268325496">&amp;Hoàn tác thêm</translation>
 <translation id="4032320456957708163"><ph name="ENROLLMENT_DOMAIN" /> quản lý trình duyệt của bạn</translation>
@@ -589,6 +632,7 @@
 <translation id="4112140312785995938">Tua lùi</translation>
 <translation id="4116663294526079822">Luôn cho phép trên trang web này</translation>
 <translation id="4117700440116928470">Phạm vi chính sách không được hỗ trợ.</translation>
+<translation id="4123572138124678573">Đục 3 lỗ dưới cùng</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 mục khác}other{# mục khác}}</translation>
 <translation id="4130226655945681476">Kiểm tra cáp mạng, modem và bộ định tuyến</translation>
 <translation id="413544239732274901">Tìm hiểu thêm</translation>
@@ -625,6 +669,7 @@
     &lt;h4&gt;Bước 5: Yêu cầu trợ giúp thêm&lt;/h4&gt;
     &lt;p&gt;Nếu bạn vẫn gặp lỗi này, hãy liên hệ với chủ sở hữu trang web.&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />Thử chạy Chẩn đoán mạng<ph name="END_LINK" />.</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />Tiếp tục truy cập vào <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">Hợp lệ</translation>
 <translation id="4250431568374086873">Kết nối của bạn tới trang web này không đủ an toàn</translation>
 <translation id="4250680216510889253">Không</translation>
@@ -638,6 +683,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{Đã lưu thẻ này vào Tài khoản Google của bạn}other{Đã lưu các thẻ này vào Tài khoản Google của bạn}}</translation>
 <translation id="428847186335018806">Quét các tệp mà bạn tải lên hoặc tải xuống trên Chrome.</translation>
 <translation id="42981349822642051">Mở rộng</translation>
+<translation id="4300675098767811073">Đục nhiều lỗ bên phải</translation>
 <translation id="4302965934281694568">Chou3 (Phong bì)</translation>
 <translation id="4305817255990598646">Chuyển</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -652,6 +698,7 @@
 <translation id="4356973930735388585">Những kẻ tấn công trên trang web này có thể tìm cách cài đặt các chương trình nguy hiểm vào máy tính của bạn. Các chương trình này sẽ đánh cắp hoặc xóa thông tin của bạn (ví dụ: ảnh, mật khẩu, thư và thẻ tín dụng).</translation>
 <translation id="4358461427845829800">Quản lý phương thức thanh toán...</translation>
 <translation id="4367563149485757821">Number-12 (Phong bì)</translation>
+<translation id="437058704415269440">Số dư tài khoản</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">Giá trị <ph name="VALUE_TYPE" /> mong đợi.</translation>
 <translation id="4377125064752653719">Bạn đã cố truy cập vào <ph name="DOMAIN" /> nhưng chứng chỉ mà máy chủ xuất trình đã bị nhà phát hành thu hồi. Điều này có nghĩa là giấy ủy nhiệm bảo mật mà máy chủ xuất trình hoàn toàn không đáng tin cậy. Bạn có thể đang giao tiếp với kẻ tấn công.</translation>
@@ -693,8 +740,11 @@
 <translation id="4594403342090139922">&amp;Hoàn tác xóa</translation>
 <translation id="4597348597567598915">Kích thước 8</translation>
 <translation id="4600854749408232102">C6/C5 (Phong bì)</translation>
+<translation id="4635654612248442824">Trang web <ph name="ORIGIN" /> đã yêu cầu phải áp dụng một chính sách nguồn gốc
+    cho tất cả các yêu cầu của trang web. Tuy nhiên, chính sách này hiện không áp dụng được.</translation>
 <translation id="464342062220857295">Tìm kiếm tính năng</translation>
 <translation id="4646534391647090355">Chuyển đến đó ngay</translation>
+<translation id="4658638640878098064">Dập ghim trên cùng bên trái</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này có lỗi. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
 <translation id="467809019005607715">Google Trang trình bày</translation>
@@ -716,6 +766,7 @@
 <translation id="4756388243121344051">&amp;Lịch sử</translation>
 <translation id="4758311279753947758">Thêm thông tin liên hệ</translation>
 <translation id="4764776831041365478">Trang web tại <ph name="URL" /> có thể tạm thời không hoạt động hay được chuyển vĩnh viễn sang địa chỉ web mới.</translation>
+<translation id="4766713847338118463">Dập 2 ghim dưới cùng</translation>
 <translation id="4771973620359291008">Xảy ra lỗi chưa biết.</translation>
 <translation id="4780900888022378816">Thiết bị của bạn do <ph name="ENROLLMENT_DOMAIN" /> quản lý, còn tài khoản của bạn do <ph name="ACCOUNT_DOMAIN" /> quản lý.</translation>
 <translation id="4785689107224900852">Chuyển sang tab này</translation>
@@ -738,6 +789,7 @@
 <translation id="4880827082731008257">Lịch sử tìm kiếm</translation>
 <translation id="4881695831933465202">Mở</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">Đục lỗ trên cùng bên trái</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{và thêm 1 trang web}other{và thêm # trang web}}</translation>
 <translation id="4923417429809017348">Trang này đã được dịch từ một ngôn ngữ không xác định sang <ph name="LANGUAGE_LANGUAGE" /></translation>
 <translation id="4923459931733593730">Thanh toán</translation>
@@ -749,6 +801,7 @@
 <translation id="495170559598752135">Tác vụ</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">Mở rộng danh sách</translation>
+<translation id="4973922308112707173">Đục 2 lỗ trên cùng</translation>
 <translation id="4974590756084640048">Bật lại cảnh báo</translation>
 <translation id="4984339528288761049">Prc5 (Phong bì)</translation>
 <translation id="4989163558385430922">Xem tất cả</translation>
@@ -776,6 +829,7 @@
 <translation id="5087286274860437796">Chứng chỉ của máy chủ không hợp lệ tại thời điểm này.</translation>
 <translation id="5087580092889165836">Thêm thẻ</translation>
 <translation id="5089810972385038852">Tỉnh</translation>
+<translation id="5093232627742069661">Gấp kiểu chữ Z</translation>
 <translation id="5094747076828555589">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này không được Chromium tin cậy. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
 <translation id="5095208057601539847">Tỉnh</translation>
 <translation id="5097099694988056070">Số liệu thống kê về thiết bị, chẳng hạn như mức sử dụng CPU/RAM</translation>
@@ -812,6 +866,9 @@
 <translation id="5251803541071282808">Đám mây</translation>
 <translation id="5252000469029418751">C7 (Phong bì)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">Thanh toán hoàn tất</translation>
+<translation id="5266128565379329178">Đóng gáy trên cùng</translation>
+<translation id="5269225904387178860">Đục 4 lỗ dưới cùng</translation>
 <translation id="5269999699920406580">Chỉ chủ sở hữu <ph name="OWNER_EMAIL" /> mới có thể đặt các tính năng áp dụng trên toàn hệ thống.</translation>
 <translation id="5273658854610202413">Cảnh báo: Chính sách này không được hợp nhất như chỉ định trong chính sách PolicyDictionaryMultipleSourceMergeList vì chính sách này không thuộc các chính sách từ điển có thể hợp nhất.</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -824,6 +881,7 @@
 <translation id="5300589172476337783">Hiển thị</translation>
 <translation id="5308380583665731573">Kết nối</translation>
 <translation id="5308689395849655368">Báo cáo sự cố bị tắt.</translation>
+<translation id="5314967030527622926">Máy tạo cuốn sách nhỏ</translation>
 <translation id="5317780077021120954">Lưu</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />, <ph name="MATCH_POSITION" /> / <ph name="NUM_MATCHES" /></translation>
 <translation id="5324080437450482387">Chọn thông tin liên hệ</translation>
@@ -839,6 +897,7 @@
 <translation id="5384855140246857529">Để sử dụng thẻ trên tất cả thiết bị, hãy đăng nhập và bật tính năng đồng bộ hóa.</translation>
 <translation id="5386426401304769735">Chuỗi chứng chỉ cho trang web này có chứa một chứng chỉ đã ký bằng SHA-1.</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">May viền ở bên phải</translation>
 <translation id="540969355065856584">Máy chủ này không chứng minh được rằng đó là <ph name="DOMAIN" />; chứng chỉ bảo mật của máy chủ này không hợp lệ tại thời điểm này. Điều này có thể do định cấu hình sai hoặc có kẻ tấn công chặn kết nối của bạn.</translation>
 <translation id="5421136146218899937">Xóa dữ liệu duyệt web...</translation>
 <translation id="5430298929874300616">Xóa dấu trang</translation>
@@ -864,6 +923,7 @@
 <translation id="5510766032865166053">Tệp này có thể đã bị di chuyển hoặc xóa.</translation>
 <translation id="5523118979700054094">Tên chính sách</translation>
 <translation id="552553974213252141">Văn bản đã được trích xuất chính xác chưa?</translation>
+<translation id="55293785478302737">May viền</translation>
 <translation id="553484882784876924">Prc6 (Phong bì)</translation>
 <translation id="5540224163453853">Không thể tìm thấy bài viết đã yêu cầu.</translation>
 <translation id="5541546772353173584">Thêm email</translation>
@@ -932,6 +992,7 @@
 <translation id="5893752035575986141">Thẻ tín dụng được chấp nhận.</translation>
 <translation id="5895138241574237353">Khởi động lại</translation>
 <translation id="5901630391730855834">Vàng</translation>
+<translation id="5905445707201418379">Bị chặn theo chính sách nguồn gốc của <ph name="ORIGIN" />.</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (được đồng bộ hóa)</translation>
 <translation id="5916664084637901428">Bật</translation>
 <translation id="59174027418879706">Được kích hoạt</translation>
@@ -950,6 +1011,7 @@
 <translation id="598637245381783098">Không thể mở ứng dụng thanh toán</translation>
 <translation id="5989320800837274978">Cả máy chủ proxy cố định và URL tập lệnh .pac đều chưa được chỉ định.</translation>
 <translation id="5990559369517809815">Tiện ích đã chặn yêu cầu tới máy chủ.</translation>
+<translation id="5992691462791905444">Gấp kiểu chữ Z kỹ thuật</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> kết quả cho '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">Năm</translation>
@@ -958,8 +1020,11 @@
 <translation id="6017850046339264347">Những kẻ tấn công trên <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> có thể cài đặt ứng dụng lừa đảo giả vờ là nội dung khác hoặc thu thập dữ liệu có thể dùng để theo dõi bạn. <ph name="BEGIN_LEARN_MORE_LINK" />Tìm hiểu thêm<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />, <ph name="TYPE_2" />, <ph name="TYPE_3" /> (được đồng bộ hóa)</translation>
 <translation id="6027201098523975773">Nhập tên</translation>
+<translation id="603068602130820122">Dập 2 ghim bên phải</translation>
+<translation id="6032955021262906325">Đóng gáy bên trái</translation>
 <translation id="6034000775414344507">Xám nhạt</translation>
 <translation id="6034283069659657473">10x14 (Phong bì)</translation>
+<translation id="6034514109191629503">Gấp kiểu đàn xếp</translation>
 <translation id="6039846035001940113">Nếu sự cố vẫn tiếp diễn, hãy liên hệ với chủ sở hữu trang web.</translation>
 <translation id="6040143037577758943">Đóng</translation>
 <translation id="6044573915096792553">Kích thước 12</translation>
@@ -970,6 +1035,7 @@
 <translation id="6058977677006700226">Bạn muốn sử dụng thẻ trên tất cả thiết bị?</translation>
 <translation id="6059925163896151826">Thiết bị USB</translation>
 <translation id="6060009363608157444">Chế độ DnsOverHttps không hợp lệ.</translation>
+<translation id="6064217302520318294">Khóa màn hình</translation>
 <translation id="6080696365213338172">Bạn đã truy cập nội dung bằng chứng chỉ do quản trị viên cấp. Dữ liệu mà bạn cung cấp cho <ph name="DOMAIN" /> có thể bị quản trị viên của bạn chặn.</translation>
 <translation id="6094273045989040137">Chú thích</translation>
 <translation id="610911394827799129">Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác tại <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /></translation>
@@ -977,6 +1043,7 @@
 <translation id="6146055958333702838">Kiểm tra mọi dây cáp rồi khởi động lại bộ định tuyến, modem hoặc các thiết bị
     mạng khác mà bạn có thể đang sử dụng.</translation>
 <translation id="614940544461990577">Hãy thử:</translation>
+<translation id="6150036310511284407">Đục 3 lỗ bên trái</translation>
 <translation id="6151417162996330722">Chứng chỉ máy chủ có thời gian hiệu lực quá dài.</translation>
 <translation id="6157877588268064908">Để xem các yêu cầu và phương thức giao hàng, hãy chọn một địa chỉ</translation>
 <translation id="6165508094623778733">Tìm hiểu thêm</translation>
@@ -984,7 +1051,9 @@
 <translation id="6177128806592000436">Kết nối của bạn tới trang web này không an toàn</translation>
 <translation id="6203231073485539293">Kiểm tra kết nối Internet của bạn</translation>
 <translation id="6218753634732582820">Bạn muốn xóa địa chỉ khỏi Chromium?</translation>
+<translation id="622039917539443112">Gấp kiểu song song</translation>
 <translation id="6221345481584921695">Duyệt web an toàn của Google gần đây <ph name="BEGIN_LINK" />đã phát hiện phần mềm độc hại<ph name="END_LINK" /> trên <ph name="SITE" />. Các trang web thường được coi là an toàn đôi khi vẫn bị nhiễm phần mềm độc hại. Nội dung độc hại xuất phát từ <ph name="SUBRESOURCE_HOST" />, một nguồn phát tán phần mềm độc hại đã xác định.</translation>
+<translation id="6234122620015464377">Cắt bỏ sau mỗi tài liệu</translation>
 <translation id="6240447795304464094">Biểu trưng của Google Pay</translation>
 <translation id="6251924700383757765">Chính sách bảo mật</translation>
 <translation id="6254436959401408446">Không đủ bộ nhớ để mở trang này</translation>
@@ -1010,17 +1079,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{Không có}=1{1 mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}=2{2 mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}other{# mật khẩu (cho <ph name="DOMAIN_LIST" />, đã đồng bộ hóa)}}</translation>
 <translation id="6358450015545214790">Những phần này có ý nghĩa gì?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">Dập 2 ghim bên trái</translation>
 <translation id="6377268785556383139">1 kết quả cho '<ph name="SEARCH_TEXT" />'</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">Nếu tiếp tục, bạn có thể bị tính phí.</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{1 đề xuất khác}other{# đề xuất khác}}</translation>
 <translation id="6387754724289022810">Để thanh toán nhanh hơn vào lần tiếp theo, hãy lưu địa chỉ thanh toán và thẻ vào Tài khoản Google của bạn và thiết bị này.</translation>
+<translation id="6390200185239044127">Gấp đôi kiểu chữ Z</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">Chính sách này không còn dùng nữa. Thay vào đó, bạn nên sử dụng chính sách <ph name="NEW_POLICY" />.</translation>
 <translation id="6404511346730675251">Chỉnh sửa dấu trang</translation>
 <translation id="6406765186087300643">C0 (Phong bì)</translation>
 <translation id="6410264514553301377">Nhập ngày hết hạn và CVC cho <ph name="CREDIT_CARD" /></translation>
 <translation id="6415778972515849510">Chromium có thể giúp bạn bảo vệ Tài khoản Google của mình và đổi mật khẩu.</translation>
+<translation id="6427730057873428458">Gấp dạng cửa</translation>
 <translation id="6431585503458005759">Không lưu</translation>
 <translation id="6433490469411711332">Chỉnh sửa thông tin liên hệ</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> đã từ chối kết nối.</translation>
@@ -1031,6 +1103,7 @@
 <translation id="6446608382365791566">Thêm thông tin khác</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6451458296329894277">Xác nhận việc Gửi lại Biểu mẫu</translation>
+<translation id="6457206614190510200">Đóng kim lồng</translation>
 <translation id="6465306955648956876">Quản lý mật khẩu...</translation>
 <translation id="647261751007945333">Chính sách thiết bị</translation>
 <translation id="6476284679642588870">Quản lý phương thức thanh toán</translation>
@@ -1045,9 +1118,11 @@
 <translation id="6529602333819889595">&amp;Làm lại xóa</translation>
 <translation id="6534179046333460208">Đề xuất Web trong cuộc sống</translation>
 <translation id="6545864417968258051">Quét tìm Bluetooth</translation>
+<translation id="6547208576736763147">Đục 2 lỗ bên trái</translation>
 <translation id="6554795675067793129">Tài khoản của bạn do <ph name="ENROLLMENT_DOMAIN" /> quản lý.</translation>
 <translation id="6556866813142980365">Làm lại</translation>
 <translation id="6569060085658103619">Bạn đang xem trang tiện ích</translation>
+<translation id="6573200754375280815">Đục 2 lỗ bên phải</translation>
 <translation id="6578796323535178455">C2 (Phong bì)</translation>
 <translation id="6579990219486187401">Hồng nhạt</translation>
 <translation id="6583674473685352014">B6 (Phong bì)</translation>
@@ -1066,6 +1141,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{Không có}=1{Của 1 trang web (bạn sẽ không bị đăng xuất khỏi Tài khoản Google của mình)}other{Của # trang web (bạn sẽ không bị đăng xuất khỏi Tài khoản Google của mình)}}</translation>
 <translation id="6652101503459149953">Sử dụng Windows Hello</translation>
 <translation id="6657585470893396449">Mật khẩu</translation>
+<translation id="6665553082534466207">Đục 3 lỗ bên phải</translation>
 <translation id="6670613747977017428">Quay lại trang an toàn.</translation>
 <translation id="6671697161687535275">Bạn muốn xóa đề xuất biểu mẫu khỏi Chromium?</translation>
 <translation id="6685834062052613830">Đăng xuất và hoàn thành quá trình thiết lập</translation>
@@ -1286,6 +1362,7 @@
 <translation id="7764225426217299476">Thêm địa chỉ</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">Quận</translation>
+<translation id="7791196057686275387">Đóng kiện</translation>
 <translation id="7791543448312431591">Thêm</translation>
 <translation id="7800304661137206267">Kết nối được mã hóa bằng <ph name="CIPHER" />, với <ph name="MAC" /> để xác thực thư và <ph name="KX" /> là cơ chế trao đổi chính.</translation>
 <translation id="7802523362929240268">Trang web hợp pháp</translation>
@@ -1306,22 +1383,27 @@
 <translation id="7882421473871500483">Nâu</translation>
 <translation id="7887683347370398519">Kiểm tra CVC của bạn và thử lại</translation>
 <translation id="7904208859782148177">C3 (Phong bì)</translation>
+<translation id="7932579305932748336">Phủ</translation>
 <translation id="79338296614623784">Nhập số điện thoại hợp lệ</translation>
+<translation id="7934052535022478634">Thanh toán hoàn tất</translation>
 <translation id="7935318582918952113">DOM Distiller</translation>
 <translation id="7937554595067888181">Hết hạn vào <ph name="EXPIRATION_DATE_ABBR" /></translation>
 <translation id="7938958445268990899">Chứng chỉ của máy chủ chưa hợp lệ.</translation>
 <translation id="7942349550061667556">Đỏ</translation>
 <translation id="7947285636476623132">Kiểm tra năm hết hạn của bạn và thử lại</translation>
 <translation id="7951415247503192394">(32 bit)</translation>
+<translation id="7953569069500808819">May viền ở trên cùng</translation>
 <translation id="7956713633345437162">Dấu trang trên thiết bị di động</translation>
 <translation id="7961015016161918242">Không bao giờ</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">Đóng gáy</translation>
 <translation id="7995512525968007366">Không chỉ định</translation>
 <translation id="800218591365569300">Thử đóng các tab hoặc chương trình khác để giải phóng bộ nhớ.</translation>
 <translation id="8004582292198964060">Trình duyệt</translation>
 <translation id="8009225694047762179">Quản lý mật khẩu</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{Thẻ này và địa chỉ thanh toán của thẻ sẽ được lưu. Bạn có thể sử dụng thẻ khi đăng nhập vào <ph name="USER_EMAIL" />.}other{Các thẻ này và địa chỉ thanh toán của thẻ sẽ được lưu. Bạn có thể sử dụng các thẻ này khi đăng nhập vào <ph name="USER_EMAIL" />.}}</translation>
 <translation id="8025119109950072390">Những kẻ tấn công trên trang web này có thể đánh lừa bạn làm một việc gì đó nguy hiểm như cài đặt phần mềm hoặc tiết lộ thông tin cá nhân của bạn (ví dụ: mật khẩu, số điện thoại hoặc thẻ tín dụng).</translation>
+<translation id="8028960012888758725">Cắt bỏ sau lệnh in</translation>
 <translation id="8034522405403831421">Trang này có ngôn ngữ là <ph name="SOURCE_LANGUAGE" />. Dịch trang này sang <ph name="TARGET_LANGUAGE" />?</translation>
 <translation id="8035152190676905274">Bút</translation>
 <translation id="8037117624646282037">Người đã sử dụng thiết bị này gần đây</translation>
@@ -1336,6 +1418,7 @@
 <translation id="8074253406171541171">10x13 (Phong bì)</translation>
 <translation id="8078141288243656252">Không thể chú thích khi xoay</translation>
 <translation id="8079031581361219619">Tải lại trang web?</translation>
+<translation id="8086971161893892807">Bản nháp</translation>
 <translation id="8088680233425245692">Không xem được bài viết.</translation>
 <translation id="808894953321890993">Đổi mật khẩu</translation>
 <translation id="8090403583893450254">Kích thước 20</translation>
@@ -1351,6 +1434,7 @@
 <translation id="8131740175452115882">Xác nhận</translation>
 <translation id="8149426793427495338">Máy tính của bạn đã chuyển sang chế độ ngủ.</translation>
 <translation id="8150722005171944719">Không thể đọc được tệp tại <ph name="URL" />.  Tệp này có thể đã bị xóa, di chuyển hoặc quyền tệp có thể đang chặn truy cập.</translation>
+<translation id="8163866351304776260">Đục 4 lỗ bên trái</translation>
 <translation id="8175796834047840627">Chrome đang đề xuất lưu thẻ của bạn vào Tài khoản Google vì bạn đã đăng nhập. Bạn có thể thay đổi hành động này trong phần cài đặt.</translation>
 <translation id="8184538546369750125">Sử dụng cài đặt mặc định chung (Cho phép)</translation>
 <translation id="8194797478851900357">&amp;Hoàn tác di chuyển</translation>
@@ -1373,6 +1457,7 @@
 <translation id="8253091569723639551">Yêu cầu địa chỉ thanh toán</translation>
 <translation id="825929999321470778">Hiển thị tất cả các mật khẩu đã lưu</translation>
 <translation id="8261506727792406068">Xóa</translation>
+<translation id="8262952874573525464">May viền ở dưới cùng</translation>
 <translation id="8267698848189296333">Đăng nhập với tên <ph name="USERNAME" /></translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">Đăng nhập</translation>
@@ -1381,6 +1466,7 @@
 <translation id="8293206222192510085">Thêm Dấu trang</translation>
 <translation id="8294431847097064396">Nguồn</translation>
 <translation id="8298115750975731693">Wi-Fi mà bạn đang sử dụng (<ph name="WIFI_NAME" />) có thể yêu cầu bạn phải truy cập <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />.</translation>
+<translation id="830498451218851433">Gấp đôi</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">Không thể dịch do kết nối mạng có sự cố.</translation>
 <translation id="8332188693563227489">Quyền truy cập <ph name="HOST_NAME" /> bị từ chối</translation>
@@ -1409,6 +1495,7 @@
 <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="8466379296835108687">{COUNT,plural, =1{1 thẻ tín dụng}other{# thẻ tín dụng}}</translation>
 <translation id="8473863474539038330">Địa chỉ và các tùy chọn khác</translation>
+<translation id="8479754468255770962">Dập ghim dưới cùng bên trái</translation>
 <translation id="8483780878231876732">Để sử dụng thẻ từ Tài khoản Google, hãy đăng nhập vào Chrome</translation>
 <translation id="8488350697529856933">Áp dụng cho</translation>
 <translation id="8498891568109133222"><ph name="HOST_NAME" /> mất quá nhiều thời gian để phản hồi.</translation>
@@ -1416,6 +1503,7 @@
 <translation id="8503813439785031346">Tên người dùng</translation>
 <translation id="8508648098325802031">Biểu tượng Tìm kiếm</translation>
 <translation id="8522552481199248698">Chrome có thể giúp bạn bảo vệ Tài khoản Google của mình và đổi mật khẩu.</translation>
+<translation id="8542014550340843547">Dập 3 ghim dưới cùng</translation>
 <translation id="8543181531796978784">Bạn có thể <ph name="BEGIN_ERROR_LINK" />báo cáo sự cố đã phát hiện<ph name="END_ERROR_LINK" /> hoặc nếu bạn hiểu rủi ro với bảo mật của mình, hãy <ph name="BEGIN_LINK" />truy cập trang web không an toàn này<ph name="END_LINK" />.</translation>
 <translation id="8553075262323480129">Dịch thất bại do ngôn ngữ của trang không được xác định.</translation>
 <translation id="8557066899867184262">CVC nằm ở mặt sau thẻ của bạn.</translation>
@@ -1438,6 +1526,7 @@
 <translation id="8703575177326907206">Kết nối của bạn đến <ph name="DOMAIN" /> không được mã hóa.</translation>
 <translation id="8718314106902482036">Thanh toán chưa hoàn tất</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />, <ph name="DESCRIPTION" />, đề xuất tìm kiếm</translation>
+<translation id="8719528812645237045">Đục nhiều lỗ trên cùng</translation>
 <translation id="8723954843026426558">Tôi đồng ý với điều khoản và điều kiện, chính sách quyền riêng tư, cũng như quyền rút lui của <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /></translation>
 <translation id="8725066075913043281">Thử lại</translation>
 <translation id="8728672262656704056">Bạn đã chuyển sang chế độ ẩn danh</translation>
@@ -1456,6 +1545,7 @@
 <translation id="8792621596287649091">Bạn có thể mất quyền truy cập vào tài khoản <ph name="ORG_NAME" /> của mình hoặc bị đánh cắp danh tính. Chromium khuyên bạn nên thay đổi mật khẩu ngay bây giờ.</translation>
 <translation id="8800988563907321413">Đề xuất ở gần bạn xuất hiện ở đây</translation>
 <translation id="8805819170075074995">Mục nhập danh sách "<ph name="LANGUAGE_ID" />": Mục nhập bị bỏ qua vì cũng được bao gồm trong chính sách SpellcheckLanguage.</translation>
+<translation id="8807160976559152894">Cắt bỏ sau mỗi trang</translation>
 <translation id="8820817407110198400">Dấu trang</translation>
 <translation id="883848425547221593">Dấu trang Khác</translation>
 <translation id="884264119367021077">Ðịa chỉ giao hàng</translation>
@@ -1463,6 +1553,7 @@
 <translation id="885730110891505394">Chia sẻ với Google</translation>
 <translation id="8858065207712248076">Chrome khuyên bạn nên đặt lại mật khẩu <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> của mình nếu đã sử dụng lại mật khẩu này trên các trang web khác.</translation>
 <translation id="8866481888320382733">Lỗi phân tích cú pháp cài đặt chính sách</translation>
+<translation id="8866928039507595380">Gấp</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">Các tab đã Đóng gần đây</translation>
 <translation id="8874824191258364635">Nhập số thẻ hợp lệ</translation>
@@ -1470,6 +1561,7 @@
 <translation id="8903921497873541725">Phóng to</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Tài khoản Google</translation>
+<translation id="892588693504540538">Đục lỗ trên cùng bên phải</translation>
 <translation id="8931333241327730545">Bạn có muốn lưu thẻ này vào Tài khoản Google của mình không?</translation>
 <translation id="8932102934695377596">Đồng hồ của bạn chạy chậm</translation>
 <translation id="893332455753468063">Thêm tên</translation>
@@ -1531,6 +1623,7 @@
 <translation id="9174917557437862841">Nút chuyển đổi tab, nhấn phím Enter để chuyển sang tab này</translation>
 <translation id="9183302530794969518">Google Tài liệu</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> sử dụng giao thức không được hỗ trợ.</translation>
+<translation id="9191834167571392248">Đục lỗ dưới cùng bên trái</translation>
 <translation id="9205078245616868884">Dữ liệu của bạn đã được mã hóa bằng cụm mật khẩu đồng bộ hóa. Nhập cụm mật khẩu đó để bắt đầu đồng bộ hóa.</translation>
 <translation id="9207861905230894330">Không thêm được bài viết.</translation>
 <translation id="9215416866750762878">Một ứng dụng hiện không cho Chrome kết nối an toàn với trang web này</translation>
@@ -1541,7 +1634,9 @@
 <translation id="936602727769022409">Bạn có thể mất quyền truy cập vào Tài khoản Google của mình. Chromium khuyên bạn nên đổi mật khẩu ngay bây giờ. Bạn sẽ được yêu cầu đăng nhập.</translation>
 <translation id="939736085109172342">Thư mục mới</translation>
 <translation id="945855313015696284">Kiểm tra thông tin bên dưới và xóa mọi thẻ không hợp lệ</translation>
+<translation id="950736567201356821">Đục 3 lỗ trên cùng</translation>
 <translation id="951104842009476243">Thẻ ghi nợ và thẻ trả trước được chấp nhận</translation>
+<translation id="961663415146723894">Đóng gáy dưới cùng</translation>
 <translation id="962484866189421427">Nội dung này có thể tìm cách cài đặt ứng dụng lừa đảo giả mạo nội dung khác hoặc thu thập dữ liệu có thể được dùng để theo dõi bạn. <ph name="BEGIN_LINK" />Vẫn hiển thị<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">Phiên bản Chính thức</translation>
 <translation id="973773823069644502">Thêm địa chỉ giao hàng</translation>
diff --git a/components/strings/components_strings_zh-CN.xtb b/components/strings/components_strings_zh-CN.xtb
index 6342a8c..84382f3 100644
--- a/components/strings/components_strings_zh-CN.xtb
+++ b/components/strings/components_strings_zh-CN.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">重新连接到 Wi-Fi 网络</translation>
 <translation id="1165039591588034296">错误</translation>
 <translation id="1175364870820465910">打印(&amp;P)...</translation>
+<translation id="1175875016430184367">三钉(右侧)</translation>
 <translation id="1178581264944972037">暂停</translation>
 <translation id="1181037720776840403">删除</translation>
 <translation id="1197088940767939838">橙色</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">恶意软件扫描</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />尝试清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">已被弃用的功能</translation>
+<translation id="1314509827145471431">胶订(右侧)</translation>
 <translation id="1320233736580025032">Prc1 (Envelope)</translation>
 <translation id="132301787627749051">搜索剪贴板上的图片</translation>
 <translation id="1323433172918577554">展开</translation>
 <translation id="132390688737681464">保存并填写地址</translation>
+<translation id="1330449323196174374">门式折(左侧)</translation>
 <translation id="1333989956347591814">以下各方<ph name="BEGIN_EMPHASIS" />可能仍会看到<ph name="END_EMPHASIS" />您的活动:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />您访问的网站
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">关于版本</translation>
 <translation id="1376836354785490390">收起</translation>
 <translation id="1377321085342047638">卡号</translation>
+<translation id="1380591466760231819">包芯折</translation>
 <translation id="138218114945450791">浅蓝色</translation>
 <translation id="1382194467192730611">您的管理员允许使用的 USB 设备</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> 未发送任何数据。</translation>
 <translation id="1405567553485452995">浅绿色</translation>
 <translation id="1407135791313364759">全部打开</translation>
+<translation id="1408787208417187241">三钉(顶部)</translation>
 <translation id="1413809658975081374">隐私设置错误</translation>
 <translation id="1426410128494586442">是</translation>
 <translation id="1430915738399379752">打印</translation>
+<translation id="1442386063175183758">门式折(右侧)</translation>
+<translation id="1442987760062738829">打孔</translation>
 <translation id="1455413310270022028">橡皮擦</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">显示更多</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">接受的信用卡和借记卡</translation>
 <translation id="194030505837763158">请访问<ph name="LINK" /></translation>
 <translation id="1945968466830820669">您可能会无法再访问所属组织的帐号,或被他人盗用身份信息。Chromium 建议您立即更改密码。</translation>
+<translation id="1947454675006758438">钉装(右上角)</translation>
 <translation id="1948773908305951926">接受的预付卡</translation>
 <translation id="1962204205936693436"><ph name="DOMAIN" />书签</translation>
 <translation id="1973335181906896915">序列化错误</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">清除 Chrome 的浏览记录数据</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{以及另外 1 个应用}other{以及另外 # 个应用}}</translation>
 <translation id="2003709556000175978">立即重置您的密码</translation>
+<translation id="2003775180883135320">四孔(顶部)</translation>
 <translation id="2025186561304664664">代理已设为自动配置。</translation>
 <translation id="202813660234680402">不添加</translation>
 <translation id="2030481566774242610">您是想访问<ph name="LINK" />吗?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">声音</translation>
 <translation id="2094505752054353250">网域不匹配</translation>
 <translation id="2096368010154057602">省</translation>
+<translation id="2099652385553570808">三钉(左侧)</translation>
 <translation id="2102134110707549001">建议安全系数高的密码…</translation>
 <translation id="2108755909498034140">重新启动计算机</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">信用卡</translation>
 <translation id="2114841414352855701">由于已被 <ph name="POLICY_NAME" /> 替换,该政策已忽略。</translation>
 <translation id="2119505898009119320">颁发对象:<ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">打孔(右下角)</translation>
 <translation id="2129079103035905234">动态传感器</translation>
 <translation id="213826338245044447">移动设备书签</translation>
 <translation id="214556005048008348">取消付款</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">电话号码</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 个地址}other{# 个地址}}</translation>
 <translation id="2187317261103489799">检测(默认)</translation>
+<translation id="2188375229972301266">多孔(底部)</translation>
 <translation id="2202020181578195191">请输入有效的失效年份</translation>
 <translation id="2212735316055980242">找不到策略</translation>
 <translation id="2213606439339815911">正在获取条目…</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099">请使用<ph name="BEGIN_LINK" />诊断应用<ph name="END_LINK" />修复网络连接</translation>
 <translation id="2239100178324503013">立即发送</translation>
 <translation id="2248949050832152960">使用 WebAuthn</translation>
+<translation id="2250931979407627383">压边缝合(左侧)</translation>
 <translation id="225207911366869382">适用于该政策的此值已弃用。</translation>
 <translation id="2257315177824333709">抱歉,当前无法保存您的卡</translation>
 <translation id="2262243747453050782">HTTP 错误</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">电话号码</translation>
 <translation id="2277103315734023688">快进</translation>
 <translation id="2283340219607151381">保存并填写地址</translation>
+<translation id="2289385804009217824">裁切</translation>
 <translation id="2292556288342944218">您被禁止访问互联网</translation>
 <translation id="2297722699537546652">B5 (Envelope)</translation>
 <translation id="2310021320168182093">Chou2 (Envelope)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">您的管理员可以远程更改您的浏览器设置。此设备上的活动也可能会在 Chrome 外部受管理。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">此服务器无法证明它是<ph name="DOMAIN" />;其安全证书可能已被撤消。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
+<translation id="2438874542388153331">四孔(右侧)</translation>
 <translation id="2463193859425327265">更改主页</translation>
 <translation id="2463739503403862330">填充</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">选择速递方式</translation>
+<translation id="2465688316154986572">订书钉装订</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />运行网络诊断<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">翻译此页</translation>
 <translation id="2479410451996844060">搜索网址无效。</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">保护帐号</translation>
 <translation id="2515335152965840738">忽略</translation>
 <translation id="2515629240566999685">检查您所在区域的网络信号</translation>
+<translation id="2521385132275182522">钉装(右下角)</translation>
 <translation id="2523886232349826891">仅会保存在此设备上</translation>
 <translation id="2524461107774643265">添加更多信息</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{以及另外 1 个网域}other{以及另外 # 个网域}}</translation>
@@ -326,10 +343,12 @@
 <translation id="2618023639789766142">C10 (Envelope)</translation>
 <translation id="2625385379895617796">您的时钟快了</translation>
 <translation id="2634124572758952069">找不到 <ph name="HOST_NAME" /> 的服务器 IP 地址。</translation>
+<translation id="2638745661847473633">您要访问的服务器 <ph name="ORIGIN" /> 已请求将一项来源政策应用于向其发出的所有请求。但该服务器现在提供了一项无效的政策,这意味着,浏览器无法满足您对 <ph name="SITE" /> 的访问请求。网站运营商可以使用来源政策为网站配置安全及其他属性。</translation>
 <translation id="2639739919103226564">状态:</translation>
 <translation id="2649204054376361687"><ph name="COUNTRY" /><ph name="CITY" /></translation>
 <translation id="2650446666397867134">访问文件遭拒</translation>
 <translation id="2653659639078652383">提交</translation>
+<translation id="2660650542324841986">您要访问的服务器 <ph name="ORIGIN" /> 已请求将一项来源政策应用于向其发出的所有请求。但该服务器现在未能提供任何政策,这会阻止浏览器满足您对 <ph name="SITE" /> 的访问请求。网站运营商可以使用来源政策为网站配置安全及其他属性。</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{无}=1{1 个密码(用于 <ph name="DOMAIN_LIST" />)}=2{2 个密码(用于 <ph name="DOMAIN_LIST" />)}other{# 个密码(用于 <ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">关闭其他标签页或应用</translation>
 <translation id="2674170444375937751">确定要从历史记录中删除这些页吗?</translation>
@@ -344,6 +363,7 @@
 <translation id="2713444072780614174">白色</translation>
 <translation id="2720342946869265578">附近</translation>
 <translation id="2721148159707890343">请求成功</translation>
+<translation id="272451190272506600">触摸传感器即可付款</translation>
 <translation id="2728127805433021124">服务器的证书是使用弱签名算法进行签名的。</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />运行网络连接诊断<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">启用这些功能可能会致使您丢失浏览数据,或者致使您的安全或隐私受到威胁。此操作会为该浏览器的所有用户启用这些功能。</translation>
@@ -367,8 +387,10 @@
 <translation id="2847118875340931228">打开无痕式窗口</translation>
 <translation id="2850739647070081192">Invite (Envelope)</translation>
 <translation id="2856444702002559011">攻击者可能会试图从 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> 窃取您的信息(例如:密码、通讯内容或信用卡信息)。<ph name="BEGIN_LEARN_MORE_LINK" />了解详情<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">海报折</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">保存卡片?</translation>
+<translation id="2882949212241984732">双重的门式折</translation>
 <translation id="2903493209154104877">地址</translation>
 <translation id="290376772003165898">网页的源语言不是<ph name="LANGUAGE" />?</translation>
 <translation id="2909946352844186028">检测到了网络变化。</translation>
@@ -378,6 +400,7 @@
 <translation id="2925673989565098301">递送方式</translation>
 <translation id="2928905813689894207">帐单邮寄地址</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{<ph name="SHIPPING_ADDRESS_PREVIEW" />以及另外 <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> 个地址}other{<ph name="SHIPPING_ADDRESS_PREVIEW" />以及另外 <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> 个地址}}</translation>
+<translation id="2930577230479659665">每完成一个副本即裁切</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">此服务器无法证明它是<ph name="DOMAIN" />;其安全证书来自<ph name="DOMAIN2" />。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
 <translation id="2948083400971632585">您可以在设置页面中停用任何针对某个连接配置的代理。</translation>
@@ -391,6 +414,7 @@
 <translation id="2985398929374701810">请输入有效的送货地址</translation>
 <translation id="2986368408720340940">该取货方式不可用。请另选一种方式。</translation>
 <translation id="2987034854559945715">找不到任何相符的功能</translation>
+<translation id="2989742184762224133">双钉(顶部)</translation>
 <translation id="2991174974383378012">与网站分享</translation>
 <translation id="2991571918955627853">您目前无法访问 <ph name="SITE" />,因为此网站使用了 HSTS。网络错误和攻击通常是暂时的,因此,此网页稍后可能会恢复正常。</translation>
 <translation id="3005723025932146533">显示已保存的版本</translation>
@@ -409,6 +433,7 @@
 <translation id="3096100844101284527">添加取货地址</translation>
 <translation id="3105172416063519923">资产 ID:</translation>
 <translation id="3109728660330352905">您未获授权,无法查看此网页。</translation>
+<translation id="3116158981186517402">粘合</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />尝试运行网络连接诊断<ph name="END_LINK" />。</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{无}=1{1 个帐号的登录数据}other{# 个帐号的登录数据}}</translation>
@@ -422,6 +447,7 @@
 <translation id="3174168572213147020">岛</translation>
 <translation id="3176929007561373547">请检查您的代理服务器设置或与网络管理员联系,以确保代理服务器正常运行。如果您认为自己不需要使用代理服务器,请执行以下操作:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">帐号余额</translation>
 <translation id="3195213714973468956">“<ph name="SERVER_NAME" />”上的“<ph name="PRINTER_NAME" />”</translation>
 <translation id="320323717674993345">取消付款</translation>
 <translation id="3207960819495026254">已加书签</translation>
@@ -491,6 +517,7 @@
 <translation id="358285529439630156">接受信用卡和预付卡。</translation>
 <translation id="3582930987043644930">添加名称</translation>
 <translation id="3583757800736429874">恢复移动(&amp;R)</translation>
+<translation id="3584299510153766161">双孔(底部)</translation>
 <translation id="3586931643579894722">隐藏详细信息</translation>
 <translation id="3592413004129370115">Italian (Envelope)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />,<ph name="DOMAIN" />,<ph name="TIME" /></translation>
@@ -510,6 +537,7 @@
 <translation id="3678529606614285348">在新的无痕式窗口中打开网页 (Ctrl-Shift-N)</translation>
 <translation id="3679803492151881375">崩溃报告的获取时间:<ph name="CRASH_TIME" />;上传时间:<ph name="UPLOAD_TIME" /></translation>
 <translation id="3681007416295224113">证书信息</translation>
+<translation id="3688109723158850780">您要访问的服务器 <ph name="ORIGIN" /> 已请求将一项来源政策应用于向其发出的所有请求。但该服务器并未提供任何政策,而是将浏览器重定向到了别处,这会阻止浏览器满足您对 <ph name="SITE" /> 的访问请求。网站运营商可以使用来源政策为网站配置安全及其他属性。</translation>
 <translation id="3701427423622901115">已确认要重置。</translation>
 <translation id="3704162925118123524">您正在使用的网络可能会要求您访问其登录页面。</translation>
 <translation id="3704609568417268905"><ph name="TIME" /> - <ph name="BOOKMARKED" /> - <ph name="TITLE" /> - <ph name="DOMAIN" /></translation>
@@ -542,6 +570,7 @@
 <translation id="382518646247711829">如果您使用代理服务器…</translation>
 <translation id="3828924085048779000">密码输入字段不能留空。</translation>
 <translation id="3831915413245941253"><ph name="ENROLLMENT_DOMAIN" /> 已安装了一些扩展程序来提供更多功能。这些扩展程序有权访问您的部分数据。</translation>
+<translation id="3832522519263485449">多孔(左侧)</translation>
 <translation id="385051799172605136">后退</translation>
 <translation id="3858027520442213535">更新日期和时间</translation>
 <translation id="3884278016824448484">设备标识符存在冲突</translation>
@@ -563,6 +592,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> 已被屏蔽</translation>
 <translation id="3981540111851280311"><ph name="ENROLLMENT_DOMAIN" /> 已在您的浏览器中启用了 Chrome 企业版威胁防护功能。Chrome 企业版威胁防护功能可以访问您的部分数据。</translation>
 <translation id="3987940399970879459">小于 1 MB</translation>
+<translation id="3990250421422698716">撞页偏移</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{附近有 1 个网页}other{附近有 # 个网页}}</translation>
 <translation id="4030383055268325496">撤消添加(&amp;U)</translation>
 <translation id="4032320456957708163">您的浏览器由 <ph name="ENROLLMENT_DOMAIN" /> 管理</translation>
@@ -583,6 +613,7 @@
 <translation id="4112140312785995938">快退</translation>
 <translation id="4116663294526079822">在此网站上始终允许</translation>
 <translation id="4117700440116928470">政策范围不受支持。</translation>
+<translation id="4123572138124678573">三孔(底部)</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{1 项其他内容}other{# 项其他内容}}</translation>
 <translation id="4130226655945681476">检查网线、调制解调器和路由器</translation>
 <translation id="413544239732274901">了解详情</translation>
@@ -619,6 +650,7 @@
     &lt;h4&gt;第 5 步:获取额外帮助&lt;/h4&gt;
     &lt;p&gt;如果您仍会看到这条错误消息,请与网站所有者联系。&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />尝试运行网络诊断<ph name="END_LINK" />。</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />继续前往 <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">有效</translation>
 <translation id="4250431568374086873">您与此网站之间建立的连接并非完全安全</translation>
 <translation id="4250680216510889253">否</translation>
@@ -632,6 +664,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{这张卡已保存到您的 Google 帐号中}other{这些卡已保存到您的 Google 帐号中}}</translation>
 <translation id="428847186335018806">扫描您在 Chrome 中下载或上传的文件。</translation>
 <translation id="42981349822642051">展开</translation>
+<translation id="4300675098767811073">多孔(右侧)</translation>
 <translation id="4302965934281694568">Chou3 (Envelope)</translation>
 <translation id="4305817255990598646">切换</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -646,6 +679,7 @@
 <translation id="4356973930735388585">此网站上的攻击者可能会试图在您的计算机上安装危险程序,以窃取或删除您的信息(例如:照片、密码、通讯内容和信用卡信息)。</translation>
 <translation id="4358461427845829800">管理付款方式…</translation>
 <translation id="4367563149485757821">Number-12 (Envelope)</translation>
+<translation id="437058704415269440">帐号余额</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">应使用<ph name="VALUE_TYPE" />值。</translation>
 <translation id="4377125064752653719">您尝试访问的是 <ph name="DOMAIN" />,但服务器出示的证书已被其颁发者吊销。这表明绝对不应该信任此服务器出示的安全凭据。您可能正在与攻击者进行通信。</translation>
@@ -687,8 +721,10 @@
 <translation id="4594403342090139922">撤消删除(&amp;U)</translation>
 <translation id="4597348597567598915">大小:8</translation>
 <translation id="4600854749408232102">C6/C5 (Envelope)</translation>
+<translation id="4635654612248442824">网站 <ph name="ORIGIN" /> 已请求将一项来政策应用于它的所有请求,但此政策目前无法应用。</translation>
 <translation id="464342062220857295">搜索功能</translation>
 <translation id="4646534391647090355">立即前往</translation>
+<translation id="4658638640878098064">钉装(左上角)</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">此服务器无法证明它是<ph name="DOMAIN" />;其安全证书有误。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
 <translation id="467809019005607715">Google 幻灯片</translation>
@@ -710,6 +746,7 @@
 <translation id="4756388243121344051">历史记录(&amp;H)</translation>
 <translation id="4758311279753947758">添加联系信息</translation>
 <translation id="4764776831041365478">网址为 <ph name="URL" /> 的网页可能暂时无法连接,或者它已永久性地移动到了新网址。</translation>
+<translation id="4766713847338118463">双钉(底部)</translation>
 <translation id="4771973620359291008">发生未知错误。</translation>
 <translation id="4780900888022378816">您的设备由 <ph name="ENROLLMENT_DOMAIN" /> 管理,您的帐号由 <ph name="ACCOUNT_DOMAIN" /> 管理。</translation>
 <translation id="4785689107224900852">切换到这个标签页</translation>
@@ -732,6 +769,7 @@
 <translation id="4880827082731008257">搜索历史记录</translation>
 <translation id="4881695831933465202">打开</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />、<ph name="TYPE_2" />、<ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">打孔(左上角)</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{和另外 1 个网页}other{和另外 # 个网页}}</translation>
 <translation id="4923417429809017348">翻译服务器已将此网页从某种未知语言翻译成了<ph name="LANGUAGE_LANGUAGE" />。</translation>
 <translation id="4923459931733593730">付款</translation>
@@ -743,6 +781,7 @@
 <translation id="495170559598752135">操作</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">展开列表</translation>
+<translation id="4973922308112707173">双孔(顶部)</translation>
 <translation id="4974590756084640048">重新启用警告功能</translation>
 <translation id="4984339528288761049">Prc5 (Envelope)</translation>
 <translation id="4989163558385430922">查看全部</translation>
@@ -770,6 +809,7 @@
 <translation id="5087286274860437796">服务器的证书目前无效。</translation>
 <translation id="5087580092889165836">添加新卡</translation>
 <translation id="5089810972385038852">州/省/直辖市/自治区</translation>
+<translation id="5093232627742069661">Z 型折</translation>
 <translation id="5094747076828555589">此服务器无法证明它是<ph name="DOMAIN" />;Chromium不信任其安全证书。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
 <translation id="5095208057601539847">省</translation>
 <translation id="5097099694988056070">设备统计信息(例如 CPU/RAM 使用情况)</translation>
@@ -806,6 +846,9 @@
 <translation id="5251803541071282808">云端</translation>
 <translation id="5252000469029418751">C7 (Envelope)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">付款已完成</translation>
+<translation id="5266128565379329178">胶订(顶部)</translation>
+<translation id="5269225904387178860">四孔(底部)</translation>
 <translation id="5269999699920406580">在整个系统范围内应用的功能只能由所有者 <ph name="OWNER_EMAIL" /> 设定</translation>
 <translation id="5273658854610202413">警告:系统未按照 PolicyDictionaryMultipleSourceMergeList 政策中指定的方式合并此政策,因为此政策不是可合并的字典政策的一部分。</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -818,6 +861,7 @@
 <translation id="5300589172476337783">显示</translation>
 <translation id="5308380583665731573">连接</translation>
 <translation id="5308689395849655368">已停用崩溃报告。</translation>
+<translation id="5314967030527622926">手册制作工具</translation>
 <translation id="5317780077021120954">保存</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />,第 <ph name="MATCH_POSITION" /> 个(共 <ph name="NUM_MATCHES" /> 个)</translation>
 <translation id="5324080437450482387">选择联系信息</translation>
@@ -833,6 +877,7 @@
 <translation id="5384855140246857529">要在所有设备上使用您的卡,请登录您的帐号并开启同步功能。</translation>
 <translation id="5386426401304769735">此网站的证书链包含使用 SHA-1 签署的证书。</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">压边缝合(右侧)</translation>
 <translation id="540969355065856584">此服务器无法证明它是 <ph name="DOMAIN" />;其安全证书目前无效。出现此问题的原因可能是配置有误或您的连接被拦截了。</translation>
 <translation id="5421136146218899937">清除浏览数据...</translation>
 <translation id="5430298929874300616">移除书签</translation>
@@ -857,6 +902,7 @@
 <translation id="5510766032865166053">该文件可能已被移至别处或遭到删除。</translation>
 <translation id="5523118979700054094">政策名</translation>
 <translation id="552553974213252141">提取的内容是否正确?</translation>
+<translation id="55293785478302737">压边缝合</translation>
 <translation id="553484882784876924">Prc6 (Envelope)</translation>
 <translation id="5540224163453853">找不到请求的文章。</translation>
 <translation id="5541546772353173584">添加电子邮件地址</translation>
@@ -925,6 +971,7 @@
 <translation id="5893752035575986141">接受信用卡。</translation>
 <translation id="5895138241574237353">重新启动</translation>
 <translation id="5901630391730855834">黄色</translation>
+<translation id="5905445707201418379">已被屏蔽,依据是 <ph name="ORIGIN" /> 的来源政策。</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" />(已同步)</translation>
 <translation id="5916664084637901428">启用</translation>
 <translation id="59174027418879706">已启用</translation>
@@ -943,6 +990,7 @@
 <translation id="598637245381783098">无法打开付款应用</translation>
 <translation id="5989320800837274978">固定代理服务器和 .pac 脚本网址均未指定。</translation>
 <translation id="5990559369517809815">对服务器的请求已遭到某个扩展程序的阻止。</translation>
+<translation id="5992691462791905444">工程 Z 型折</translation>
 <translation id="6000758707621254961"><ph name="RESULT_COUNT" /> 个与“<ph name="SEARCH_TEXT" />”相符的搜索结果</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">年</translation>
@@ -951,8 +999,11 @@
 <translation id="6017850046339264347"><ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> 上的攻击者可能会安装欺骗性应用来冒充其他内容或收集可用于对您进行跟踪的数据。<ph name="BEGIN_LEARN_MORE_LINK" />了解详情<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />、<ph name="TYPE_2" />、<ph name="TYPE_3" />(已同步)</translation>
 <translation id="6027201098523975773">请输入名称</translation>
+<translation id="603068602130820122">双钉(右侧)</translation>
+<translation id="6032955021262906325">胶订(左侧)</translation>
 <translation id="6034000775414344507">浅灰色</translation>
 <translation id="6034283069659657473">10x14 (Envelope)</translation>
+<translation id="6034514109191629503">风琴折</translation>
 <translation id="6039846035001940113">如果问题仍然存在,请与网站所有者联系。</translation>
 <translation id="6040143037577758943">关闭</translation>
 <translation id="6044573915096792553">大小:12</translation>
@@ -963,12 +1014,14 @@
 <translation id="6058977677006700226">在您的所有设备上使用您的卡?</translation>
 <translation id="6059925163896151826">USB 设备</translation>
 <translation id="6060009363608157444">DnsOverHttps 模式无效。</translation>
+<translation id="6064217302520318294">屏幕锁定</translation>
 <translation id="6080696365213338172">您已使用管理员提供的证书访问了内容,因此管理员可以拦截您提供给 <ph name="DOMAIN" /> 的数据。</translation>
 <translation id="6094273045989040137">注释</translation>
 <translation id="610911394827799129">您的 Google 帐号在 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 上可能有其他形式的浏览记录</translation>
 <translation id="6132597952260690497">与已安装的扩展程序和插件相关的信息</translation>
 <translation id="6146055958333702838">请检查所有网线是否都已连好,然后重新启动您可能正在使用的任何路由器、调制解调器或其他网络设备。</translation>
 <translation id="614940544461990577">请试试以下办法:</translation>
+<translation id="6150036310511284407">三孔(左侧)</translation>
 <translation id="6151417162996330722">该服务器证书的有效期过长。</translation>
 <translation id="6157877588268064908">要查看送货方式和要求,请选择相应地址</translation>
 <translation id="6165508094623778733">了解详情</translation>
@@ -976,7 +1029,9 @@
 <translation id="6177128806592000436">您与此网站之间建立的连接不安全</translation>
 <translation id="6203231073485539293">请检查您的互联网连接是否正常</translation>
 <translation id="6218753634732582820">要从 Chromium 中移除地址吗?</translation>
+<translation id="622039917539443112">平行折</translation>
 <translation id="6221345481584921695">Google安全浏览功能最近在<ph name="SITE" />上<ph name="BEGIN_LINK" />检测到了恶意软件<ph name="END_LINK" />。平常非常安全的网站有时也会感染恶意软件。检测到的恶意内容来自于<ph name="SUBRESOURCE_HOST" />,这是个已知的恶意软件散布方。</translation>
+<translation id="6234122620015464377">每完成一个文档即裁切</translation>
 <translation id="6240447795304464094">Google Pay 徽标</translation>
 <translation id="6251924700383757765">隐私权政策</translation>
 <translation id="6254436959401408446">内存不足,无法打开此网页</translation>
@@ -1002,17 +1057,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{无}=1{1 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}=2{2 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}other{# 个密码(用于 <ph name="DOMAIN_LIST" />,已同步)}}</translation>
 <translation id="6358450015545214790">这分别意味着什么?</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">双钉(左侧)</translation>
 <translation id="6377268785556383139">1 个与“<ph name="SEARCH_TEXT" />”相符的搜索结果</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">可能产生费用。</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{1 条其他建议}other{# 条其他建议}}</translation>
 <translation id="6387754724289022810">只要将您的付款卡信息和帐单邮寄地址保存到您的 Google 帐号和此设备,下次即可更便捷地完成付款。</translation>
+<translation id="6390200185239044127">Z 型对折</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">此政策已被弃用。您应改用 <ph name="NEW_POLICY" /> 政策。</translation>
 <translation id="6404511346730675251">修改书签</translation>
 <translation id="6406765186087300643">C0 (Envelope)</translation>
 <translation id="6410264514553301377">请输入“<ph name="CREDIT_CARD" />”的到期日期和银行卡验证码 (CVC)</translation>
 <translation id="6415778972515849510">Chromium 可以帮助您保护您的 Google 帐号和更改密码。</translation>
+<translation id="6427730057873428458">门式折</translation>
 <translation id="6431585503458005759">不存储</translation>
 <translation id="6433490469411711332">修改联系信息</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> 拒绝了我们的连接请求。</translation>
@@ -1023,6 +1081,7 @@
 <translation id="6446608382365791566">添加更多信息</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6451458296329894277">确认重新提交表单</translation>
+<translation id="6457206614190510200">鞍式装订</translation>
 <translation id="6465306955648956876">管理密码…</translation>
 <translation id="647261751007945333">设备政策</translation>
 <translation id="6476284679642588870">管理付款方式</translation>
@@ -1037,9 +1096,11 @@
 <translation id="6529602333819889595">恢复删除(&amp;R)</translation>
 <translation id="6534179046333460208">实物网建议</translation>
 <translation id="6545864417968258051">蓝牙扫描</translation>
+<translation id="6547208576736763147">双孔(左侧)</translation>
 <translation id="6554795675067793129">您的帐号由 <ph name="ENROLLMENT_DOMAIN" /> 管理。</translation>
 <translation id="6556866813142980365">重做</translation>
 <translation id="6569060085658103619">您正在查看扩展程序页面</translation>
+<translation id="6573200754375280815">双孔(右侧)</translation>
 <translation id="6578796323535178455">C2 (Envelope)</translation>
 <translation id="6579990219486187401">浅粉色</translation>
 <translation id="6583674473685352014">B6 (Envelope)</translation>
@@ -1058,6 +1119,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{无}=1{来自 1 个网站(这不会致使您退出自己的 Google 帐号)}other{来自 # 个网站(这不会致使您退出自己的 Google 帐号)}}</translation>
 <translation id="6652101503459149953">使用 Windows Hello</translation>
 <translation id="6657585470893396449">密码</translation>
+<translation id="6665553082534466207">三孔(右侧)</translation>
 <translation id="6670613747977017428">返回到安全网页。</translation>
 <translation id="6671697161687535275">要从 Chromium 中移除表单填写建议吗?</translation>
 <translation id="6685834062052613830">请退出并完成设置</translation>
@@ -1278,6 +1340,7 @@
 <translation id="7764225426217299476">添加地址</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">县</translation>
+<translation id="7791196057686275387">捆绑式装订</translation>
 <translation id="7791543448312431591">添加</translation>
 <translation id="7800304661137206267">该连接是使用 <ph name="CIPHER" /> 进行加密的,同时使用 <ph name="MAC" /> 进行讯息身份验证并使用 <ph name="KX" /> 作为密钥交换机制。</translation>
 <translation id="7802523362929240268">网站是合规的</translation>
@@ -1298,22 +1361,27 @@
 <translation id="7882421473871500483">棕色</translation>
 <translation id="7887683347370398519">请检查您的银行卡验证码 (CVC),然后重试</translation>
 <translation id="7904208859782148177">C3 (Envelope)</translation>
+<translation id="7932579305932748336">涂层</translation>
 <translation id="79338296614623784">请输入有效的电话号码</translation>
+<translation id="7934052535022478634">付款已完成</translation>
 <translation id="7935318582918952113">DOM Distiller</translation>
 <translation id="7937554595067888181">到期时间:<ph name="EXPIRATION_DATE_ABBR" /></translation>
 <translation id="7938958445268990899">服务器的证书尚未生效。</translation>
 <translation id="7942349550061667556">红色</translation>
 <translation id="7947285636476623132">请检查您的信用卡到期年份,然后重试</translation>
 <translation id="7951415247503192394">(32 位)</translation>
+<translation id="7953569069500808819">压边缝合(顶部)</translation>
 <translation id="7956713633345437162">移动设备书签</translation>
 <translation id="7961015016161918242">一律不</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">胶订</translation>
 <translation id="7995512525968007366">未指定</translation>
 <translation id="800218591365569300">请尝试关闭其他标签页或程序以释放内存。</translation>
 <translation id="8004582292198964060">浏览器</translation>
 <translation id="8009225694047762179">管理密码</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{这张卡及其帐单邮寄地址将被保存。登录 <ph name="USER_EMAIL" /> 后即可使用这张卡。}other{这些卡及其帐单邮寄地址将被保存。登录 <ph name="USER_EMAIL" /> 后即可使用这些卡。}}</translation>
 <translation id="8025119109950072390">此网站上的攻击者可能会诱骗您做出一些诸如安装软件或泄露个人信息(例如:密码、电话号码或信用卡信息)之类的危险事情。</translation>
+<translation id="8028960012888758725">完成任务后裁切</translation>
 <translation id="8034522405403831421">此网页的源语言为<ph name="SOURCE_LANGUAGE" />,要将其翻译成<ph name="TARGET_LANGUAGE" />吗?</translation>
 <translation id="8035152190676905274">钢笔</translation>
 <translation id="8037117624646282037">最近使用过这部设备的用户</translation>
@@ -1328,6 +1396,7 @@
 <translation id="8074253406171541171">10x13 (Envelope)</translation>
 <translation id="8078141288243656252">无法在旋转后添加注释</translation>
 <translation id="8079031581361219619">重新加载此网站?</translation>
+<translation id="8086971161893892807">草稿</translation>
 <translation id="8088680233425245692">无法查看文章。</translation>
 <translation id="808894953321890993">更改密码</translation>
 <translation id="8090403583893450254">大小:20</translation>
@@ -1343,6 +1412,7 @@
 <translation id="8131740175452115882">确认</translation>
 <translation id="8149426793427495338">您的计算机已进入休眠模式。</translation>
 <translation id="8150722005171944719">无法读取 <ph name="URL" /> 上的文件。该文件可能已遭到删除、移动,或者文件权限不允许进行访问。</translation>
+<translation id="8163866351304776260">四孔(左侧)</translation>
 <translation id="8175796834047840627">Chrome 会主动询问是否要将您的卡保存到您的 Google 帐号中,因为您已登录。您可在“设置”中更改此行为。</translation>
 <translation id="8184538546369750125">使用全局默认设置(允许)</translation>
 <translation id="8194797478851900357">撤消移动(&amp;U)</translation>
@@ -1365,6 +1435,7 @@
 <translation id="8253091569723639551">账单邮寄地址是必填项</translation>
 <translation id="825929999321470778">显示所有已保存的密码</translation>
 <translation id="8261506727792406068">删除</translation>
+<translation id="8262952874573525464">压边缝合(底部)</translation>
 <translation id="8267698848189296333">目前登录的帐号是 <ph name="USERNAME" /></translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">登录</translation>
@@ -1373,6 +1444,7 @@
 <translation id="8293206222192510085">添加书签</translation>
 <translation id="8294431847097064396">来源</translation>
 <translation id="8298115750975731693">您要使用的 Wi-Fi 网络(<ph name="WIFI_NAME" />)可能需要您访问 <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />。</translation>
+<translation id="830498451218851433">对折</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">由于网络连接问题,翻译失败。</translation>
 <translation id="8332188693563227489">访问 <ph name="HOST_NAME" /> 的请求遭到拒绝</translation>
@@ -1401,6 +1473,7 @@
 <translation id="8461694314515752532">使用您自己的同步密码加密已同步的数据</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 张信用卡}other{# 张信用卡}}</translation>
 <translation id="8473863474539038330">地址和其他信息</translation>
+<translation id="8479754468255770962">钉装(左下角)</translation>
 <translation id="8483780878231876732">要使用您 Google 帐号中的信用卡,请登录 Chrome</translation>
 <translation id="8488350697529856933">适用对象</translation>
 <translation id="8498891568109133222"><ph name="HOST_NAME" /> 的响应时间过长。</translation>
@@ -1408,6 +1481,7 @@
 <translation id="8503813439785031346">用户名</translation>
 <translation id="8508648098325802031">搜索图标</translation>
 <translation id="8522552481199248698">Chrome 可以帮助您保护您的 Google 帐号和更改密码。</translation>
+<translation id="8542014550340843547">三钉(底部)</translation>
 <translation id="8543181531796978784">您可以<ph name="BEGIN_ERROR_LINK" />报告检测问题<ph name="END_ERROR_LINK" />;或者,如果您了解自己将面临的安全风险,则可以<ph name="BEGIN_LINK" />访问这个不安全的网站<ph name="END_LINK" />。</translation>
 <translation id="8553075262323480129">系统无法确定该网页的语言,因此无法进行翻译。</translation>
 <translation id="8557066899867184262">银行卡验证码 (CVC) 位于银行卡背面。</translation>
@@ -1430,6 +1504,7 @@
 <translation id="8703575177326907206">您与 <ph name="DOMAIN" /> 的连接未加密。</translation>
 <translation id="8718314106902482036">未能完成付款</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />,<ph name="DESCRIPTION" />,搜索建议</translation>
+<translation id="8719528812645237045">多孔(顶部)</translation>
 <translation id="8723954843026426558">我认同 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 的条款及条件、隐私权政策和撤消权</translation>
 <translation id="8725066075913043281">重试</translation>
 <translation id="8728672262656704056">您已进入无痕模式</translation>
@@ -1448,6 +1523,7 @@
 <translation id="8792621596287649091">您可能会无法再访问自己的 <ph name="ORG_NAME" /> 帐号,或者身份信息遭到盗用。Chromium 建议您立即更改密码。</translation>
 <translation id="8800988563907321413">此处将显示系统建议您浏览的附近网页</translation>
 <translation id="8805819170075074995">列表条目“<ph name="LANGUAGE_ID" />”:该条目因同时存在于 SpellcheckLanguage 政策中而被忽略。</translation>
+<translation id="8807160976559152894">每完成一页即裁切</translation>
 <translation id="8820817407110198400">书签</translation>
 <translation id="883848425547221593">其他书签</translation>
 <translation id="884264119367021077">送货地址</translation>
@@ -1455,6 +1531,7 @@
 <translation id="885730110891505394">与 Google 分享</translation>
 <translation id="8858065207712248076">如果您在其他网站上重复使用了您的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密码,Chrome 建议您重置该密码。</translation>
 <translation id="8866481888320382733">解析策略设置时出错</translation>
+<translation id="8866928039507595380">折叠</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">最近关闭的标签页</translation>
 <translation id="8874824191258364635">请输入有效的信用卡号</translation>
@@ -1462,6 +1539,7 @@
 <translation id="8903921497873541725">放大</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google 帐号</translation>
+<translation id="892588693504540538">打孔(右上角)</translation>
 <translation id="8931333241327730545">要将此卡的信息保存到您的 Google 帐号吗?</translation>
 <translation id="8932102934695377596">您的时钟慢了</translation>
 <translation id="893332455753468063">添加名称</translation>
@@ -1523,6 +1601,7 @@
 <translation id="9174917557437862841">标签页切换按钮,按 Enter 键可切换到此标签页</translation>
 <translation id="9183302530794969518">Google 文档</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> 使用了不受支持的协议。</translation>
+<translation id="9191834167571392248">打孔(左下角)</translation>
 <translation id="9205078245616868884">您的数据已使用您的同步密码加密。输入该密码即可开始同步。</translation>
 <translation id="9207861905230894330">无法添加文章。</translation>
 <translation id="9215416866750762878">有一款应用正在阻止 Chrome 安全地连接到此网站</translation>
@@ -1533,7 +1612,9 @@
 <translation id="936602727769022409">您可能会无法再访问自己的 Google 帐号。Chromium 建议您立即更改密码。系统会要求您登录。</translation>
 <translation id="939736085109172342">新建文件夹</translation>
 <translation id="945855313015696284">请查看下面的信息,并删除所有无效卡片</translation>
+<translation id="950736567201356821">三孔(顶部)</translation>
 <translation id="951104842009476243">接受的借记卡和预付卡</translation>
+<translation id="961663415146723894">胶订(底部)</translation>
 <translation id="962484866189421427">此内容可能会尝试安装欺骗性应用,而这些应用能够冒充其他内容或收集可用于对您进行跟踪的数据。<ph name="BEGIN_LINK" />仍然显示<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">正式版本</translation>
 <translation id="973773823069644502">添加速递地址</translation>
diff --git a/components/strings/components_strings_zh-TW.xtb b/components/strings/components_strings_zh-TW.xtb
index bd5e226a..5f3d49a9 100644
--- a/components/strings/components_strings_zh-TW.xtb
+++ b/components/strings/components_strings_zh-TW.xtb
@@ -42,6 +42,7 @@
 <translation id="1161325031994447685">重新連線至 Wi-Fi 網路</translation>
 <translation id="1165039591588034296">錯誤</translation>
 <translation id="1175364870820465910">列印(&amp;P)...</translation>
+<translation id="1175875016430184367">三釘 (右側)</translation>
 <translation id="1178581264944972037">暫停</translation>
 <translation id="1181037720776840403">移除</translation>
 <translation id="1197088940767939838">橘色</translation>
@@ -74,10 +75,12 @@
 <translation id="1298536327547837046">惡意軟體掃描</translation>
 <translation id="129863573139666797"><ph name="BEGIN_LINK" />試試看清除 Cookie<ph name="END_LINK" /></translation>
 <translation id="1307966114820526988">已淘汰的功能</translation>
+<translation id="1314509827145471431">裝訂 (右側)</translation>
 <translation id="1320233736580025032">Prc1 (信封)</translation>
 <translation id="132301787627749051">搜尋剪貼簿圖片</translation>
 <translation id="1323433172918577554">顯示完整清單</translation>
 <translation id="132390688737681464">儲存及填入地址</translation>
+<translation id="1330449323196174374">左半邊對折</translation>
 <translation id="1333989956347591814">以下各方<ph name="BEGIN_EMPHASIS" />可能仍會看到<ph name="END_EMPHASIS" />你的活動:
         <ph name="BEGIN_LIST" />
           <ph name="LIST_ITEM" />你造訪的網站
@@ -95,14 +98,18 @@
 <translation id="1375198122581997741">關於版本</translation>
 <translation id="1376836354785490390">顯示較少</translation>
 <translation id="1377321085342047638">卡號</translation>
+<translation id="1380591466760231819">包二摺</translation>
 <translation id="138218114945450791">淺藍色</translation>
 <translation id="1382194467192730611">系統管理員允許使用的 USB 裝置</translation>
 <translation id="139305205187523129"><ph name="HOST_NAME" /> 未傳送任何資料。</translation>
 <translation id="1405567553485452995">淺綠色</translation>
 <translation id="1407135791313364759">全部開啟</translation>
+<translation id="1408787208417187241">三釘 (頂端)</translation>
 <translation id="1413809658975081374">隱私權設定發生錯誤</translation>
 <translation id="1426410128494586442">是</translation>
 <translation id="1430915738399379752">列印</translation>
+<translation id="1442386063175183758">右半邊對折</translation>
+<translation id="1442987760062738829">打孔</translation>
 <translation id="1455413310270022028">橡皮擦</translation>
 <translation id="1463543813647160932">5x7</translation>
 <translation id="1472675084647422956">顯示更多</translation>
@@ -203,6 +210,7 @@
 <translation id="1927235823738766038">接受的信用卡和簽帳金融卡</translation>
 <translation id="194030505837763158">前往 <ph name="LINK" /></translation>
 <translation id="1945968466830820669">你可能會失去貴機構帳戶的存取權,或身分遭到冒用。Chromium 建議你立即變更密碼。</translation>
+<translation id="1947454675006758438">釘裝 (右上方)</translation>
 <translation id="1948773908305951926">接受的預付卡</translation>
 <translation id="1962204205936693436"><ph name="DOMAIN" /> 書籤</translation>
 <translation id="1973335181906896915">序列化錯誤</translation>
@@ -212,6 +220,7 @@
 <translation id="1981206234434200693">清除 Chrome 的瀏覽記錄資料</translation>
 <translation id="2001146170449793414">{COUNT,plural, =1{以及另外 1 個應用程式}other{以及另外 # 個應用程式}}</translation>
 <translation id="2003709556000175978">立即重設你的密碼</translation>
+<translation id="2003775180883135320">四孔 (頂端)</translation>
 <translation id="2025186561304664664">Proxy 已設為自動設定。</translation>
 <translation id="202813660234680402">否,不要新增</translation>
 <translation id="2030481566774242610">你要找的是 <ph name="LINK" /> 嗎?</translation>
@@ -226,12 +235,14 @@
 <translation id="2091887806945687916">音訊</translation>
 <translation id="2094505752054353250">網域不符</translation>
 <translation id="2096368010154057602">部門</translation>
+<translation id="2099652385553570808">三釘 (左側)</translation>
 <translation id="2102134110707549001">建議高強度密碼…</translation>
 <translation id="2108755909498034140">重新啟動電腦</translation>
 <translation id="2111256659903765347">Super-A</translation>
 <translation id="2113977810652731515">信用卡</translation>
 <translation id="2114841414352855701">由於政策被「<ph name="POLICY_NAME" />」覆寫了,因此遭到略過。</translation>
 <translation id="2119505898009119320">核發對象:<ph name="ORGANIZATION" /> [<ph name="JURISDICTION" />]</translation>
+<translation id="2119867082804433120">打孔 (右下方)</translation>
 <translation id="2129079103035905234">動作感應器</translation>
 <translation id="213826338245044447">行動版書籤</translation>
 <translation id="214556005048008348">取消付款</translation>
@@ -246,6 +257,7 @@
 <translation id="2183608646556468874">電話號碼</translation>
 <translation id="2184405333245229118">{COUNT,plural, =1{1 個地址}other{# 個地址}}</translation>
 <translation id="2187317261103489799">偵測 (預設)</translation>
+<translation id="2188375229972301266">多孔 (底部)</translation>
 <translation id="2202020181578195191">請輸入有效的到期年份</translation>
 <translation id="2212735316055980242">找不到政策</translation>
 <translation id="2213606439339815911">正在擷取項目...</translation>
@@ -255,6 +267,7 @@
 <translation id="2230458221926704099">請使用<ph name="BEGIN_LINK" />診斷應用程式<ph name="END_LINK" />修正連線問題</translation>
 <translation id="2239100178324503013">立即傳送</translation>
 <translation id="2248949050832152960">使用 WebAuthn</translation>
+<translation id="2250931979407627383">邊緣裝訂 (左側)</translation>
 <translation id="225207911366869382">這個政策值已遭汰換。</translation>
 <translation id="2257315177824333709">很抱歉,目前無法儲存你的卡片</translation>
 <translation id="2262243747453050782">HTTP 錯誤</translation>
@@ -262,6 +275,7 @@
 <translation id="2270484714375784793">電話號碼</translation>
 <translation id="2277103315734023688">快轉</translation>
 <translation id="2283340219607151381">儲存及填入地址</translation>
+<translation id="2289385804009217824">裁切</translation>
 <translation id="2292556288342944218">您的網際網路存取權遭到封鎖</translation>
 <translation id="2297722699537546652">B5 (信封)</translation>
 <translation id="2310021320168182093">Chou2 (信封)</translation>
@@ -289,10 +303,12 @@
 <translation id="2409589295040002961">你的系統管理員可以遠端變更瀏覽器設定。這部裝置上的活動也可以透過 Chrome 以外的服務管理。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="2410754574180102685">Government-Legal</translation>
 <translation id="2413528052993050574">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證已遭撤銷。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation>
+<translation id="2438874542388153331">四孔 (右側)</translation>
 <translation id="2463193859425327265">變更首頁</translation>
 <translation id="2463739503403862330">填入</translation>
 <translation id="2465402087343596252">Architecture-E</translation>
 <translation id="2465655957518002998">選擇快遞方式</translation>
+<translation id="2465688316154986572">釘裝</translation>
 <translation id="2467694685043708798"><ph name="BEGIN_LINK" />執行網路診斷<ph name="END_LINK" /></translation>
 <translation id="2473195200299095979">翻譯這個網頁</translation>
 <translation id="2479410451996844060">無效的搜尋網址。</translation>
@@ -309,6 +325,7 @@
 <translation id="2505268675989099013">保護帳戶</translation>
 <translation id="2515335152965840738">忽略</translation>
 <translation id="2515629240566999685">檢查所在位置的網路訊號</translation>
+<translation id="2521385132275182522">釘裝 (右下方)</translation>
 <translation id="2523886232349826891">僅儲存在這部裝置</translation>
 <translation id="2524461107774643265">新增詳細資訊</translation>
 <translation id="2535659140340599600">{COUNT,plural, =1{和另外 1 個網域}other{和另外 # 個網域}}</translation>
@@ -326,10 +343,12 @@
 <translation id="2618023639789766142">C10 (信封)</translation>
 <translation id="2625385379895617796">你的時鐘時間過快</translation>
 <translation id="2634124572758952069">找不到 <ph name="HOST_NAME" /> 的伺服器 IP 位址。</translation>
+<translation id="2638745661847473633">你要存取的伺服器「<ph name="ORIGIN" />」指定所有收到的要求都必須套用來源政策。但該伺服器目前提供的政策無效,因此瀏覽器無法完成你向「<ph name="SITE" />」提出的要求。網站業者可使用來源政策設定網站的安全性及其他屬性。</translation>
 <translation id="2639739919103226564">狀態:</translation>
 <translation id="2649204054376361687"><ph name="COUNTRY" />,<ph name="CITY" /></translation>
 <translation id="2650446666397867134">存取檔案遭拒</translation>
 <translation id="2653659639078652383">提交</translation>
+<translation id="2660650542324841986">你要存取的伺服器「<ph name="ORIGIN" />」指定所有收到的要求都必須套用來源政策。但該伺服器目前並未提供政策,因此瀏覽器無法完成你向「<ph name="SITE" />」提出的要求。網站業者可使用來源政策設定網站的安全性及其他屬性。</translation>
 <translation id="2664887757054927933">{COUNT,plural, =0{無}=1{有 1 組密碼 (<ph name="DOMAIN_LIST" />)}=2{有 2 組密碼 (<ph name="DOMAIN_LIST" />)}other{有 # 組密碼 (<ph name="DOMAIN_LIST" />)}}</translation>
 <translation id="2666117266261740852">關閉其他分頁或應用程式</translation>
 <translation id="2674170444375937751">確定要從你的記錄中刪除這些網頁嗎?</translation>
@@ -344,6 +363,7 @@
 <translation id="2713444072780614174">白色</translation>
 <translation id="2720342946869265578">鄰近網頁</translation>
 <translation id="2721148159707890343">要求成功</translation>
+<translation id="272451190272506600">請輕觸感應器進行付款</translation>
 <translation id="2728127805433021124">伺服器憑證是以防護力較弱的簽章演算法進行簽署。</translation>
 <translation id="2730326759066348565"><ph name="BEGIN_LINK" />執行連線診斷<ph name="END_LINK" /></translation>
 <translation id="2734544361860335147">啟用這些功能可能會造成瀏覽器資料遺失,或導致你的安全性或隱私權面臨威脅。這個瀏覽器的所有使用者都會套用你所啟用的功能。</translation>
@@ -367,8 +387,10 @@
 <translation id="2847118875340931228">開啟無痕式視窗</translation>
 <translation id="2850739647070081192">Invite (信封)</translation>
 <translation id="2856444702002559011">攻擊者可能會試圖從 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> 竊取你的資訊 (例如密碼、郵件或信用卡資料)。<ph name="BEGIN_LEARN_MORE_LINK" />瞭解詳情<ph name="END_LEARN_MORE_LINK" /></translation>
+<translation id="2878197950673342043">十字摺</translation>
 <translation id="2878424575911748999">A1</translation>
 <translation id="2881276955470682203">要儲存卡片嗎?</translation>
+<translation id="2882949212241984732">觀音摺</translation>
 <translation id="2903493209154104877">地址</translation>
 <translation id="290376772003165898">不是<ph name="LANGUAGE" />網頁嗎?</translation>
 <translation id="2909946352844186028">系統偵測到網路變更。</translation>
@@ -378,6 +400,7 @@
 <translation id="2925673989565098301">快遞方式</translation>
 <translation id="2928905813689894207">帳單地址</translation>
 <translation id="2929525460561903222">{SHIPPING_ADDRESS,plural, =0{<ph name="SHIPPING_ADDRESS_PREVIEW" />}=1{「<ph name="SHIPPING_ADDRESS_PREVIEW" />」和另外 <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> 個地址}other{「<ph name="SHIPPING_ADDRESS_PREVIEW" />」和另外 <ph name="NUMBER_OF_ADDITIONAL_ADDRESSES" /> 個地址}}</translation>
+<translation id="2930577230479659665">完成每次複印後裁切</translation>
 <translation id="2934466151127459956">Government-Letter</translation>
 <translation id="2941952326391522266">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證來自 <ph name="DOMAIN2" /> 網域。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation>
 <translation id="2948083400971632585">你可以在設定頁面停用任何為連線設置的 Proxy。</translation>
@@ -391,6 +414,7 @@
 <translation id="2985398929374701810">請輸入有效的地址</translation>
 <translation id="2986368408720340940">不支援所選的取件方式,請改選其他方式。</translation>
 <translation id="2987034854559945715">找不到相符的功能</translation>
+<translation id="2989742184762224133">雙釘 (頂端)</translation>
 <translation id="2991174974383378012">與網站分享</translation>
 <translation id="2991571918955627853">目前無法造訪 <ph name="SITE" />,因為這個網站使用 HSTS。網路錯誤和攻擊行為通常是暫時性的,因此這個網頁可能稍後就會恢復正常狀態。</translation>
 <translation id="3005723025932146533">顯示儲存的複本</translation>
@@ -409,6 +433,7 @@
 <translation id="3096100844101284527">新增取件地址</translation>
 <translation id="3105172416063519923">資產 ID:</translation>
 <translation id="3109728660330352905">您未獲得授權,無法瀏覽這個網頁。</translation>
+<translation id="3116158981186517402">裱貼</translation>
 <translation id="3120730422813725195">Elo</translation>
 <translation id="31207688938192855"><ph name="BEGIN_LINK" />嘗試執行連線診斷<ph name="END_LINK" />。</translation>
 <translation id="3137507986424712703">{COUNT,plural, =0{無}=1{1 個帳戶的登入資料}other{# 個帳戶的登入資料}}</translation>
@@ -424,6 +449,7 @@
       確認您的 Proxy 伺服器運作正常。如果您認為自己不需要使用
       Proxy 伺服器:
       <ph name="PLATFORM_TEXT" /></translation>
+<translation id="3188393374551744535">帳戶餘額</translation>
 <translation id="3195213714973468956"><ph name="SERVER_NAME" /> 上的 <ph name="PRINTER_NAME" /></translation>
 <translation id="320323717674993345">取消付款</translation>
 <translation id="3207960819495026254">已加入書籤</translation>
@@ -494,6 +520,7 @@
 <translation id="358285529439630156">接受信用卡和預付卡。</translation>
 <translation id="3582930987043644930">新增名稱</translation>
 <translation id="3583757800736429874">重做移動(&amp;R)</translation>
+<translation id="3584299510153766161">雙孔 (底部)</translation>
 <translation id="3586931643579894722">隱藏詳細資訊</translation>
 <translation id="3592413004129370115">Italian (信封)</translation>
 <translation id="3600246354004376029"><ph name="TITLE" />,<ph name="DOMAIN" />,<ph name="TIME" /></translation>
@@ -514,6 +541,7 @@
 <translation id="3678529606614285348">在新的無痕式視窗中開啟網頁 (Ctrl + Shift + N 鍵)</translation>
 <translation id="3679803492151881375">當機報告擷取時間:<ph name="CRASH_TIME" />,報告上傳時間:<ph name="UPLOAD_TIME" /></translation>
 <translation id="3681007416295224113">憑證資訊</translation>
+<translation id="3688109723158850780">你要存取的伺服器「<ph name="ORIGIN" />」指定所有收到的要求都必須套用來源政策。但該伺服器並未提供政策,且將瀏覽器重新導向他處,因此瀏覽器無法完成你向「<ph name="SITE" />」提出的要求。網站業者可使用來源政策設定網站的安全性及其他屬性。</translation>
 <translation id="3701427423622901115">已確認重設。</translation>
 <translation id="3704162925118123524">您可能需要造訪目前所使用網路的登入網頁。</translation>
 <translation id="3704609568417268905"><ph name="TIME" />,<ph name="BOOKMARKED" />,<ph name="TITLE" />,<ph name="DOMAIN" /></translation>
@@ -546,6 +574,7 @@
 <translation id="382518646247711829">如果你使用 Proxy 伺服器...</translation>
 <translation id="3828924085048779000">通關密語欄位不得留空。</translation>
 <translation id="3831915413245941253"><ph name="ENROLLMENT_DOMAIN" /> 的管理員已安裝支援額外功能的擴充功能。這些擴充功能可存取你的部分資料。</translation>
+<translation id="3832522519263485449">多孔 (左側)</translation>
 <translation id="385051799172605136">返回</translation>
 <translation id="3858027520442213535">更新日期和時間</translation>
 <translation id="3884278016824448484">裝置識別碼發生衝突</translation>
@@ -567,6 +596,7 @@
 <translation id="3973234410852337861"><ph name="HOST_NAME" /> 遭到封鎖</translation>
 <translation id="3981540111851280311"><ph name="ENROLLMENT_DOMAIN" /> 已為你的瀏覽器啟用 Chrome Enterprise 威脅防護功能。Chrome Enterprise 威脅防護功能可以存取你的部分資料。</translation>
 <translation id="3987940399970879459">不到 1 MB</translation>
+<translation id="3990250421422698716">撞頁偏移</translation>
 <translation id="40103911065039147">{URL_count,plural, =1{附近有 1 個網頁}other{附近有 # 個網頁}}</translation>
 <translation id="4030383055268325496">復原新增(&amp;U)</translation>
 <translation id="4032320456957708163">你的瀏覽器受到 <ph name="ENROLLMENT_DOMAIN" /> 管理</translation>
@@ -587,6 +617,7 @@
 <translation id="4112140312785995938">倒轉</translation>
 <translation id="4116663294526079822">永遠允許在這個網站執行</translation>
 <translation id="4117700440116928470">系統不支援這項政策的範圍。</translation>
+<translation id="4123572138124678573">三孔 (底部)</translation>
 <translation id="4129401438321186435">{COUNT,plural, =1{以及另外 1 項表單資料}other{以及另外 # 項表單資料}}</translation>
 <translation id="4130226655945681476">檢查網路線、數據機和路由器</translation>
 <translation id="413544239732274901">瞭解詳情</translation>
@@ -623,6 +654,7 @@
     &lt;h4&gt;步驟 5:尋求更多協助&lt;/h4&gt;
     &lt;p&gt;如果您仍看見錯誤訊息,請與網站擁有者聯絡。&lt;/p&gt;</translation>
 <translation id="4226937834893929579"><ph name="BEGIN_LINK" />嘗試執行網路診斷<ph name="END_LINK" />。</translation>
+<translation id="4234495348042597185"><ph name="BEGIN_LINK" />繼續前往 <ph name="SITE" /><ph name="END_LINK" /></translation>
 <translation id="4235360514405112390">有效</translation>
 <translation id="4250431568374086873">你與這個網站的連線可能有安全漏洞</translation>
 <translation id="4250680216510889253">否</translation>
@@ -636,6 +668,7 @@
 <translation id="428639260510061158">{NUM_CARDS,plural, =1{這張卡片已儲存到你的 Google 帳戶}other{這些卡片已儲存到你的 Google 帳戶}}</translation>
 <translation id="428847186335018806">掃描你透過 Chrome 下載或上傳的檔案。</translation>
 <translation id="42981349822642051">展開</translation>
+<translation id="4300675098767811073">多孔 (右側)</translation>
 <translation id="4302965934281694568">Chou3 (信封)</translation>
 <translation id="4305817255990598646">切換</translation>
 <translation id="4312613361423056926">B2</translation>
@@ -650,6 +683,7 @@
 <translation id="4356973930735388585">攻擊者可能會試圖透過這個網站在你的電腦上安裝危險程式,藉此竊取或刪除你的資訊 (例如相片、密碼、郵件和信用卡資料)。</translation>
 <translation id="4358461427845829800">管理付款方式...</translation>
 <translation id="4367563149485757821">Number-12 (Envelope)</translation>
+<translation id="437058704415269440">帳戶餘額</translation>
 <translation id="4372516964750095882">Fanfold-Us</translation>
 <translation id="4372948949327679948">預期的「<ph name="VALUE_TYPE" />」值。</translation>
 <translation id="4377125064752653719">你嘗試前往 <ph name="DOMAIN" />,但是發行者已撤銷伺服器提供的憑證。在這種情況下,請勿信任伺服器提供的安全性憑證,因為你的連線對象可能是攻擊者的電腦。</translation>
@@ -691,8 +725,10 @@
 <translation id="4594403342090139922">復原刪除(&amp;U)</translation>
 <translation id="4597348597567598915">粗細:8</translation>
 <translation id="4600854749408232102">C6/C5 (信封)</translation>
+<translation id="4635654612248442824">「<ph name="ORIGIN" />」網站指定所有收到的要求都必須套用來源政策,但目前無法套用此政策。</translation>
 <translation id="464342062220857295">搜尋功能</translation>
 <translation id="4646534391647090355">立即前往下載中心</translation>
+<translation id="4658638640878098064">釘裝 (左上方)</translation>
 <translation id="4668929960204016307">,</translation>
 <translation id="467662567472608290">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證含有錯誤。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation>
 <translation id="467809019005607715">Google 簡報</translation>
@@ -714,6 +750,7 @@
 <translation id="4756388243121344051">記錄(&amp;H)</translation>
 <translation id="4758311279753947758">新增聯絡資訊</translation>
 <translation id="4764776831041365478"><ph name="URL" /> 的網頁可能暫時離線,或是已經遷移到另一個網址。</translation>
+<translation id="4766713847338118463">雙釘 (底部)</translation>
 <translation id="4771973620359291008">發生不明的錯誤。</translation>
 <translation id="4780900888022378816">你的裝置是由 <ph name="ENROLLMENT_DOMAIN" /> 管理,你的帳戶是由 <ph name="ACCOUNT_DOMAIN" /> 管理。</translation>
 <translation id="4785689107224900852">切換至這個分頁</translation>
@@ -736,6 +773,7 @@
 <translation id="4880827082731008257">搜尋記錄</translation>
 <translation id="4881695831933465202">開啟</translation>
 <translation id="4895877746940133817"><ph name="TYPE_1" />、<ph name="TYPE_2" />,<ph name="TYPE_3" /></translation>
+<translation id="4913987521957242411">打孔 (左上方)</translation>
 <translation id="4914479371620770914">{URL_count,plural, =1{還有另外 1 個網頁}other{還有另外 # 個網頁}}</translation>
 <translation id="4923417429809017348">系統已將此網頁從不明語言翻譯成<ph name="LANGUAGE_LANGUAGE" /></translation>
 <translation id="4923459931733593730">付款</translation>
@@ -747,6 +785,7 @@
 <translation id="495170559598752135">動作</translation>
 <translation id="4955242332710481440">A5-Extra</translation>
 <translation id="4958444002117714549">展開清單</translation>
+<translation id="4973922308112707173">雙孔 (頂端)</translation>
 <translation id="4974590756084640048">重新啟用警告功能</translation>
 <translation id="4984339528288761049">Prc5 (信封)</translation>
 <translation id="4989163558385430922">查看全部</translation>
@@ -774,6 +813,7 @@
 <translation id="5087286274860437796">伺服器憑證目前無效。</translation>
 <translation id="5087580092889165836">新增信用卡</translation>
 <translation id="5089810972385038852">州</translation>
+<translation id="5093232627742069661">彈簧二摺</translation>
 <translation id="5094747076828555589">伺服器無法證明其屬於 <ph name="DOMAIN" /> 網域;其安全性憑證未取得 Chromium 的信任。這可能是因為設定錯誤,或有攻擊者攔截你的連線所致。</translation>
 <translation id="5095208057601539847">州/省</translation>
 <translation id="5097099694988056070">CPU/RAM 使用量等裝置統計資料</translation>
@@ -810,6 +850,9 @@
 <translation id="5251803541071282808">雲端</translation>
 <translation id="5252000469029418751">C7 (信封)</translation>
 <translation id="5254958791078852567">E1</translation>
+<translation id="5261548214279761072">付款完成</translation>
+<translation id="5266128565379329178">裝訂 (頂端)</translation>
+<translation id="5269225904387178860">四孔 (底部)</translation>
 <translation id="5269999699920406580">這些功能會套用至整個系統,只有以下擁有者可設定:<ph name="OWNER_EMAIL" /></translation>
 <translation id="5273658854610202413">警告:這項政策並非可合併的字典政策,因此未依照 PolicyDictionaryMultipleSourceMergeList 政策中指定的方式進行合併。</translation>
 <translation id="5283044957620376778">B1</translation>
@@ -822,6 +865,7 @@
 <translation id="5300589172476337783">顯示</translation>
 <translation id="5308380583665731573">連線</translation>
 <translation id="5308689395849655368">當機報告功能已停用。</translation>
+<translation id="5314967030527622926">手冊製作工具</translation>
 <translation id="5317780077021120954">儲存</translation>
 <translation id="5323105697514565458"><ph name="FRIENDLY_MATCH_TEXT" />,<ph name="NUM_MATCHES" /> 之 <ph name="MATCH_POSITION" /></translation>
 <translation id="5324080437450482387">選擇聯絡資訊</translation>
@@ -837,6 +881,7 @@
 <translation id="5384855140246857529">如要將卡片同步到所有裝置,請登入並開啟同步功能。</translation>
 <translation id="5386426401304769735">這個網站的憑證鏈結包含使用 SHA-1 進行簽署的憑證。</translation>
 <translation id="538659543871111977">A4-Tab</translation>
+<translation id="5396631636586785122">邊緣裝訂 (右側)</translation>
 <translation id="540969355065856584">這個伺服器無法證明所屬網域為 <ph name="DOMAIN" />;其安全性憑證目前無效。這可能是因為設定錯誤,或是有攻擊者攔截您的連線所致。</translation>
 <translation id="5421136146218899937">清除瀏覽資料...</translation>
 <translation id="5430298929874300616">移除書籤</translation>
@@ -861,6 +906,7 @@
 <translation id="5510766032865166053">檔案可能已移至其他位置或遭到刪除。</translation>
 <translation id="5523118979700054094">政策名稱</translation>
 <translation id="552553974213252141">擷取的文字是否正確?</translation>
+<translation id="55293785478302737">邊緣裝訂</translation>
 <translation id="553484882784876924">Prc6 (信封)</translation>
 <translation id="5540224163453853">找不到要求的文章。</translation>
 <translation id="5541546772353173584">新增電子郵件地址</translation>
@@ -929,6 +975,7 @@
 <translation id="5893752035575986141">接受簽帳金融卡。</translation>
 <translation id="5895138241574237353">重新啟動</translation>
 <translation id="5901630391730855834">黃色</translation>
+<translation id="5905445707201418379">已根據「<ph name="ORIGIN" />」的來源政策加以封鎖。</translation>
 <translation id="5908541034548427511"><ph name="TYPE_1" /> (已同步)</translation>
 <translation id="5916664084637901428">開啟</translation>
 <translation id="59174027418879706">已啟用</translation>
@@ -947,6 +994,7 @@
 <translation id="598637245381783098">無法開啟付款應用程式</translation>
 <translation id="5989320800837274978">沒有指定固定的 Proxy 伺服器和 .pac 指令碼網址。</translation>
 <translation id="5990559369517809815">擴充功能已封鎖要傳送至伺服器的要求。</translation>
+<translation id="5992691462791905444">大小彈簧摺</translation>
 <translation id="6000758707621254961">有 <ph name="RESULT_COUNT" /> 個與「<ph name="SEARCH_TEXT" />」相符的搜尋結果</translation>
 <translation id="6008256403891681546">JCB</translation>
 <translation id="6015796118275082299">年</translation>
@@ -955,8 +1003,11 @@
 <translation id="6017850046339264347">目前在 <ph name="BEGIN_BOLD" /><ph name="SITE" /><ph name="END_BOLD" /> 上的攻擊者可能會讓你安裝身分不實的欺騙性應用程式,或是收集可用於追蹤你的資料。<ph name="BEGIN_LEARN_MORE_LINK" />瞭解詳情<ph name="END_LEARN_MORE_LINK" /></translation>
 <translation id="6025416945513303461"><ph name="TYPE_1" />、<ph name="TYPE_2" />、<ph name="TYPE_3" /> (已同步)</translation>
 <translation id="6027201098523975773">輸入名稱</translation>
+<translation id="603068602130820122">雙釘 (右側)</translation>
+<translation id="6032955021262906325">裝訂 (左側)</translation>
 <translation id="6034000775414344507">淺灰色</translation>
 <translation id="6034283069659657473">10x14 (信封)</translation>
+<translation id="6034514109191629503">彈簧摺</translation>
 <translation id="6039846035001940113">如果問題仍未解決,請與網站擁有者聯絡。</translation>
 <translation id="6040143037577758943">關閉</translation>
 <translation id="6044573915096792553">粗細:12</translation>
@@ -967,6 +1018,7 @@
 <translation id="6058977677006700226">想在所有裝置上使用你的卡片嗎?</translation>
 <translation id="6059925163896151826">USB 裝置</translation>
 <translation id="6060009363608157444">DnsOverHttps 模式無效。</translation>
+<translation id="6064217302520318294">螢幕鎖定</translation>
 <translation id="6080696365213338172">你使用了管理員提供的憑證存取內容,因此管理員可攔截你傳送至「<ph name="DOMAIN" />」的資料。</translation>
 <translation id="6094273045989040137">註解</translation>
 <translation id="610911394827799129">你的 Google 帳戶仍可能保留了其他類型的瀏覽記錄 (可前往 <ph name="BEGIN_LINK" />myactivity.google.com<ph name="END_LINK" /> 查詢)。</translation>
@@ -974,6 +1026,7 @@
 <translation id="6146055958333702838">檢查您的網路線是否穩固連接。重新啟動您可能正在使用的任何路由器、
     數據機或其他網路裝置。</translation>
 <translation id="614940544461990577">建議做法:</translation>
+<translation id="6150036310511284407">三孔 (左側)</translation>
 <translation id="6151417162996330722">伺服器憑證的有效期限太長。</translation>
 <translation id="6157877588268064908">如要查看運送方式和相關規定,請選取一個地址</translation>
 <translation id="6165508094623778733">瞭解詳情</translation>
@@ -981,7 +1034,9 @@
 <translation id="6177128806592000436">你與這個網站的連線不安全</translation>
 <translation id="6203231073485539293">檢查網際網路連線</translation>
 <translation id="6218753634732582820">要從 Chromium 中移除地址嗎?</translation>
+<translation id="622039917539443112">雙對摺</translation>
 <translation id="6221345481584921695">Google 安全瀏覽功能最近在 <ph name="SITE" /> 上<ph name="BEGIN_LINK" />偵測到惡意軟體<ph name="END_LINK" />。即使是平常可以安全使用的網站,有時也會遭到惡意軟體感染。這些惡意內容來自已知的惡意軟體散佈網站 <ph name="SUBRESOURCE_HOST" />。</translation>
+<translation id="6234122620015464377">完成每份文件後裁切</translation>
 <translation id="6240447795304464094">Google Pay 標誌</translation>
 <translation id="6251924700383757765">隱私權政策</translation>
 <translation id="6254436959401408446">記憶體不足,無法開啟這個網頁</translation>
@@ -1007,17 +1062,20 @@
 <translation id="6353505687280762741">{COUNT,plural, =0{無}=1{有 1 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}=2{有 2 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}other{有 # 組密碼 (<ph name="DOMAIN_LIST" />,已同步處理)}}</translation>
 <translation id="6358450015545214790">我需要進一步資訊</translation>
 <translation id="6361757823711327522">B7</translation>
+<translation id="6366710531182496394">雙釘 (左側)</translation>
 <translation id="6377268785556383139">有 1 個與「<ph name="SEARCH_TEXT" />」相符的搜尋結果</translation>
 <translation id="6380497234672085559">A0</translation>
 <translation id="6383221683286411806">你要造訪的網站可能會誘導使用者支付額外額外費用。</translation>
 <translation id="6386120369904791316">{COUNT,plural, =1{以及另外 1 個建議項目}other{以及另外 # 個建議項目}}</translation>
 <translation id="6387754724289022810">只要將卡片資訊與帳單地址儲存到你的 Google 帳戶中和這部裝置上,下次即可更快完成付款程序。</translation>
+<translation id="6390200185239044127">對折後的彈簧二摺</translation>
 <translation id="6390662030813198813">Engineering-E</translation>
 <translation id="6401136357288658127">這項政策目前已淘汰,請改用 <ph name="NEW_POLICY" /> 政策。</translation>
 <translation id="6404511346730675251">編輯書籤</translation>
 <translation id="6406765186087300643">C0 (信封)</translation>
 <translation id="6410264514553301377">輸入 <ph name="CREDIT_CARD" /> 的到期日和信用卡安全碼</translation>
 <translation id="6415778972515849510">Chromium 可協助你保護 Google 帳戶並變更密碼。</translation>
+<translation id="6427730057873428458">開門摺</translation>
 <translation id="6431585503458005759">不要儲存</translation>
 <translation id="6433490469411711332">編輯聯絡資訊</translation>
 <translation id="6433595998831338502"><ph name="HOST_NAME" /> 拒絕連線。</translation>
@@ -1028,6 +1086,7 @@
 <translation id="6446608382365791566">新增詳細資訊</translation>
 <translation id="6447842834002726250">Cookie</translation>
 <translation id="6451458296329894277">確認重新提交表單</translation>
+<translation id="6457206614190510200">騎馬訂</translation>
 <translation id="6465306955648956876">管理密碼...</translation>
 <translation id="647261751007945333">裝置政策</translation>
 <translation id="6476284679642588870">管理付款方式</translation>
@@ -1042,9 +1101,11 @@
 <translation id="6529602333819889595">重做刪除(&amp;R)</translation>
 <translation id="6534179046333460208">實體化網路建議</translation>
 <translation id="6545864417968258051">藍牙掃描</translation>
+<translation id="6547208576736763147">雙孔 (左側)</translation>
 <translation id="6554795675067793129">你的帳戶是由 <ph name="ENROLLMENT_DOMAIN" /> 管理。</translation>
 <translation id="6556866813142980365">重做</translation>
 <translation id="6569060085658103619">目前顯示的是擴充功能頁面</translation>
+<translation id="6573200754375280815">雙孔 (右側)</translation>
 <translation id="6578796323535178455">C2 (信封)</translation>
 <translation id="6579990219486187401">淺粉紅色</translation>
 <translation id="6583674473685352014">B6 (信封)</translation>
@@ -1063,6 +1124,7 @@
 <translation id="6646269444027925224">{COUNT,plural, =0{無}=1{1 個網站 (你不會因此登出 Google 帳戶)}other{# 個網站 (你不會因此登出 Google 帳戶)}}</translation>
 <translation id="6652101503459149953">使用 Windows Hello</translation>
 <translation id="6657585470893396449">密碼</translation>
+<translation id="6665553082534466207">三孔 (右側)</translation>
 <translation id="6670613747977017428">返回安全網頁。</translation>
 <translation id="6671697161687535275">要從 Chromium 中移除表單填寫建議嗎?</translation>
 <translation id="6685834062052613830">請登出並完成設定程序</translation>
@@ -1283,6 +1345,7 @@
 <translation id="7764225426217299476">新增地址</translation>
 <translation id="7770259615151589601">Designated-Long</translation>
 <translation id="777702478322588152">縣</translation>
+<translation id="7791196057686275387">綑綁式裝訂</translation>
 <translation id="7791543448312431591">新增</translation>
 <translation id="7800304661137206267">連線採用 <ph name="CIPHER" /> 加密,並設有 <ph name="MAC" /> 訊息驗證及 <ph name="KX" /> 金鑰交換機制。</translation>
 <translation id="7802523362929240268">網站合法</translation>
@@ -1303,22 +1366,27 @@
 <translation id="7882421473871500483">棕色</translation>
 <translation id="7887683347370398519">請檢查您的 CVC,然後再試一次</translation>
 <translation id="7904208859782148177">C3 (信封)</translation>
+<translation id="7932579305932748336">塗布</translation>
 <translation id="79338296614623784">請輸入有效的電話號碼</translation>
+<translation id="7934052535022478634">付款完成</translation>
 <translation id="7935318582918952113">DOM Distiller</translation>
 <translation id="7937554595067888181">到期日:<ph name="EXPIRATION_DATE_ABBR" /></translation>
 <translation id="7938958445268990899">伺服器憑證尚未生效。</translation>
 <translation id="7942349550061667556">紅色</translation>
 <translation id="7947285636476623132">請檢查信用卡到期年份,然後再試一次</translation>
 <translation id="7951415247503192394">(32 位元)</translation>
+<translation id="7953569069500808819">邊緣裝訂 (右側)</translation>
 <translation id="7956713633345437162">行動版書籤</translation>
 <translation id="7961015016161918242">一律不要</translation>
 <translation id="7977894662897852582">Edp</translation>
+<translation id="799149739215780103">裝訂</translation>
 <translation id="7995512525968007366">未指定</translation>
 <translation id="800218591365569300">嘗試關閉其他分頁或程式,以釋出記憶體。</translation>
 <translation id="8004582292198964060">瀏覽器</translation>
 <translation id="8009225694047762179">管理密碼</translation>
 <translation id="8012116502927253373">{NUM_CARDS,plural, =1{系統會儲存這張卡片和相應的帳單地址。只要登入 <ph name="USER_EMAIL" /> 即可使用。}other{系統會儲存這些卡片和相應的帳單地址。只要登入 <ph name="USER_EMAIL" /> 即可使用。}}</translation>
 <translation id="8025119109950072390">攻擊者可能會試圖透過這個網站誘使你做一些危險的行為,例如安裝軟體或提供個人資訊 (包括密碼、電話號碼或信用卡資料)。</translation>
+<translation id="8028960012888758725">完成工作後裁切</translation>
 <translation id="8034522405403831421">這是<ph name="SOURCE_LANGUAGE" />網頁,需要翻譯成<ph name="TARGET_LANGUAGE" />嗎?</translation>
 <translation id="8035152190676905274">畫筆</translation>
 <translation id="8037117624646282037">最近使用過裝置的使用者</translation>
@@ -1333,6 +1401,7 @@
 <translation id="8074253406171541171">10x13 (信封)</translation>
 <translation id="8078141288243656252">文件旋轉後無法加註</translation>
 <translation id="8079031581361219619">要重新載入網站嗎?</translation>
+<translation id="8086971161893892807">草稿</translation>
 <translation id="8088680233425245692">無法查看文章。</translation>
 <translation id="808894953321890993">變更密碼</translation>
 <translation id="8090403583893450254">粗細:20</translation>
@@ -1348,6 +1417,7 @@
 <translation id="8131740175452115882">確認</translation>
 <translation id="8149426793427495338">您的電腦已進入睡眠模式。</translation>
 <translation id="8150722005171944719">無法讀取位於 <ph name="URL" /> 的檔案。這個檔案可能已遭移除或移動位置,或者檔案權限為禁止存取。</translation>
+<translation id="8163866351304776260">四孔 (左側)</translation>
 <translation id="8175796834047840627">你已登入帳戶,因此 Chrome 詢問你是否要將卡片儲存至你的 Google 帳戶。你可以在設定中變更這項行為。</translation>
 <translation id="8184538546369750125">使用全域預設值 (允許)</translation>
 <translation id="8194797478851900357">復原移動(&amp;U)</translation>
@@ -1370,6 +1440,7 @@
 <translation id="8253091569723639551">請提供帳單地址</translation>
 <translation id="825929999321470778">顯示所有已儲存的密碼</translation>
 <translation id="8261506727792406068">刪除</translation>
+<translation id="8262952874573525464">邊緣裝訂 (底部)</translation>
 <translation id="8267698848189296333">正在以 <ph name="USERNAME" /> 的身分登入</translation>
 <translation id="8281084378435768645">Large-Photo</translation>
 <translation id="8286036467436129157">登入</translation>
@@ -1378,6 +1449,7 @@
 <translation id="8293206222192510085">新增書籤</translation>
 <translation id="8294431847097064396">來源</translation>
 <translation id="8298115750975731693">目前使用的 Wi-Fi 網路 (<ph name="WIFI_NAME" />) 可能會要求您造訪 <ph name="BEGIN_BOLD" /><ph name="LOGIN_URL" /><ph name="END_BOLD" />。</translation>
+<translation id="830498451218851433">對折</translation>
 <translation id="8307358339886459768">Small-Photo</translation>
 <translation id="8308427013383895095">網路連線發生問題,翻譯作業失敗。</translation>
 <translation id="8332188693563227489">存取 <ph name="HOST_NAME" /> 的要求遭到拒絕</translation>
@@ -1406,6 +1478,7 @@
 <translation id="8461694314515752532">使用你自己的同步通關密語,加密保護同步資料</translation>
 <translation id="8466379296835108687">{COUNT,plural, =1{1 張信用卡}other{# 張信用卡}}</translation>
 <translation id="8473863474539038330">地址和其他資訊</translation>
+<translation id="8479754468255770962">釘裝 (左下方)</translation>
 <translation id="8483780878231876732">如要使用您的 Google 帳戶中的信用卡,請登入 Chrome</translation>
 <translation id="8488350697529856933">適用對象</translation>
 <translation id="8498891568109133222"><ph name="HOST_NAME" /> 的回應時間過長。</translation>
@@ -1413,6 +1486,7 @@
 <translation id="8503813439785031346">使用者名稱</translation>
 <translation id="8508648098325802031">搜尋圖示</translation>
 <translation id="8522552481199248698">Chrome 可協助你保護 Google 帳戶並變更密碼。</translation>
+<translation id="8542014550340843547">三釘 (底部)</translation>
 <translation id="8543181531796978784">您可以<ph name="BEGIN_ERROR_LINK" />回報偵測問題<ph name="END_ERROR_LINK" />。或者在您瞭解安全性風險後,仍然可以<ph name="BEGIN_LINK" />前往這個不安全的網站<ph name="END_LINK" />。</translation>
 <translation id="8553075262323480129">無法判定網頁的語言,翻譯作業失敗。</translation>
 <translation id="8557066899867184262">信用卡安全碼位於信用卡背面。</translation>
@@ -1434,6 +1508,7 @@
 <translation id="8703575177326907206">你到 <ph name="DOMAIN" /> 的連線未加密。</translation>
 <translation id="8718314106902482036">未完成付款程序</translation>
 <translation id="8719263113926255150"><ph name="ENTITY" />,<ph name="DESCRIPTION" />,搜尋建議</translation>
+<translation id="8719528812645237045">多孔 (頂端)</translation>
 <translation id="8723954843026426558">我同意 <ph name="BEGIN_BOLD" /><ph name="DOMAIN" /><ph name="END_BOLD" /> 的條款及細則、隱私權政策和撤銷權</translation>
 <translation id="8725066075913043281">再試一次</translation>
 <translation id="8728672262656704056">你已進入無痕模式</translation>
@@ -1452,6 +1527,7 @@
 <translation id="8792621596287649091">你可能會失去 <ph name="ORG_NAME" /> 帳戶存取權,或身分遭到冒用。Chromium 建議你立即變更密碼。</translation>
 <translation id="8800988563907321413">這裡會顯示系統建議你瀏覽的鄰近網頁</translation>
 <translation id="8805819170075074995">清單項目「<ph name="LANGUAGE_ID" />」:這個項目同時也納入在 SpellcheckLanguage 政策中,因此系統已予以忽略。</translation>
+<translation id="8807160976559152894">完成每頁後裁切</translation>
 <translation id="8820817407110198400">書籤</translation>
 <translation id="883848425547221593">其他書籤</translation>
 <translation id="884264119367021077">運送地址</translation>
@@ -1459,6 +1535,7 @@
 <translation id="885730110891505394">與 Google 分享</translation>
 <translation id="8858065207712248076">如果你在其他網站上重複使用過你的 <ph name="BEGIN_BOLD" /><ph name="ORG_NAME" /><ph name="END_BOLD" /> 密碼,Chrome 會建議你重設密碼。</translation>
 <translation id="8866481888320382733">解析政策設定時發生錯誤</translation>
+<translation id="8866928039507595380">折疊</translation>
 <translation id="886872106311861689">B3</translation>
 <translation id="8870413625673593573">最近關閉的分頁</translation>
 <translation id="8874824191258364635">請輸入有效的信用卡號碼</translation>
@@ -1466,6 +1543,7 @@
 <translation id="8903921497873541725">放大</translation>
 <translation id="890485472659500557">Engineering-C</translation>
 <translation id="8912362522468806198">Google 帳戶</translation>
+<translation id="892588693504540538">打孔 (右上方)</translation>
 <translation id="8931333241327730545">您要將這張卡片的資訊儲存到您的 Google 帳戶嗎?</translation>
 <translation id="8932102934695377596">你的時鐘時間過慢</translation>
 <translation id="893332455753468063">新增名稱</translation>
@@ -1527,6 +1605,7 @@
 <translation id="9174917557437862841">分頁切換按鈕,按下 Enter 鍵即可切換到這個分頁</translation>
 <translation id="9183302530794969518">Google 文件</translation>
 <translation id="9183425211371246419"><ph name="HOST_NAME" /> 使用了不支援的通訊協定。</translation>
+<translation id="9191834167571392248">打孔 (左下方)</translation>
 <translation id="9205078245616868884">您已使用同步通關密語對資料進行加密,請輸入通關密語開始進行同步。</translation>
 <translation id="9207861905230894330">無法新增文章。</translation>
 <translation id="9215416866750762878">有應用程式阻止 Chrome 建立這個網站的安全連線</translation>
@@ -1537,7 +1616,9 @@
 <translation id="936602727769022409">為避免失去 Google 帳戶存取權,Chromium 建議你立即變更密碼。系統會要求你登入帳戶。</translation>
 <translation id="939736085109172342">新增資料夾</translation>
 <translation id="945855313015696284">查看下方資訊並刪除所有無效的卡片</translation>
+<translation id="950736567201356821">三孔 (頂端)</translation>
 <translation id="951104842009476243">接受的簽帳金融卡和預付卡</translation>
+<translation id="961663415146723894">裝訂 (底部)</translation>
 <translation id="962484866189421427">這項內容可能會試圖讓你安裝身分不實的欺騙性應用程式,或是收集可用於追蹤你的資料。<ph name="BEGIN_LINK" />仍要顯示<ph name="END_LINK" /></translation>
 <translation id="969892804517981540">正式版本</translation>
 <translation id="973773823069644502">新增快遞地址</translation>
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker.cc b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
index 98152532..ff3e6b1 100644
--- a/components/url_formatter/spoof_checks/idn_spoof_checker.cc
+++ b/components/url_formatter/spoof_checks/idn_spoof_checker.cc
@@ -147,7 +147,7 @@
   // These Cyrillic letters look like Latin. A domain label entirely made of
   // these letters is blocked as a simplified whole-script-spoofable.
   cyrillic_letters_latin_alike_ = icu::UnicodeSet(
-      icu::UnicodeString::fromUTF8("[асԁеһіјӏорԗԛѕԝхуъЬҽпгѵѡ]"), status);
+      icu::UnicodeString::fromUTF8("[аысԁеԍһіјӏорԗԛѕԝхуъЬҽпгѵѡ]"), status);
   cyrillic_letters_latin_alike_.freeze();
 
   cyrillic_letters_ =
diff --git a/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc b/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc
index e6ed4a0..5ca5903 100644
--- a/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc
+++ b/components/url_formatter/spoof_checks/idn_spoof_checker_unittest.cc
@@ -391,6 +391,9 @@
     // ѕсоԗе.com is Cyrillic with Latin lookalikes.
     {"xn--e1ari3f61c.com", L"\x0455\x0441\x043e\x0517\x0435.com", false},
 
+    // ыоԍ.com is Cyrillic with Latin lookalikes
+    {"xn--n1az74c.com", L"\x044b\x043e\x050d.com", false},
+
     // Combining Diacritic marks after a script other than Latin-Greek-Cyrillic
     {"xn--rsa2568fvxya.com", L"\xd55c\x0301\xae00.com", false},  // 한́글.com
     {"xn--rsa0336bjom.com", L"\x6f22\x0307\x5b57.com", false},   // 漢̇字.com
diff --git a/components/viz/service/display/gl_renderer.cc b/components/viz/service/display/gl_renderer.cc
index 6492ff14..9480735 100644
--- a/components/viz/service/display/gl_renderer.cc
+++ b/components/viz/service/display/gl_renderer.cc
@@ -737,10 +737,12 @@
 }
 
 bool GLRenderer::ShouldApplyBackdropFilters(
-    const cc::FilterOperations* backdrop_filters) {
-  if (!backdrop_filters)
+    const DrawRenderPassDrawQuadParams* params) {
+  if (!params->backdrop_filters)
     return false;
-  DCHECK(!backdrop_filters->IsEmpty());
+  if (params->quad->shared_quad_state->opacity == 0.f)
+    return false;
+  DCHECK(!params->backdrop_filters->IsEmpty());
   return true;
 }
 
@@ -786,7 +788,7 @@
   *unclipped_rect = backdrop_rect;
   backdrop_rect.Intersect(MoveFromDrawToWindowSpace(
       current_frame()->current_render_pass->output_rect));
-  if (ShouldApplyBackdropFilters(params->backdrop_filters)) {
+  if (ShouldApplyBackdropFilters(params)) {
     float max_pixel_movement = params->backdrop_filters->MaximumPixelMovement();
     gfx::Rect scissor_rect(current_window_space_viewport_);
     scissor_rect.Inset(-max_pixel_movement, -max_pixel_movement);
@@ -910,7 +912,7 @@
     const gfx::Rect& unclipped_rect,
     const base::Optional<gfx::RRectF>& backdrop_filter_bounds,
     const gfx::Transform& backdrop_filter_bounds_transform) {
-  DCHECK(ShouldApplyBackdropFilters(params->backdrop_filters));
+  DCHECK(ShouldApplyBackdropFilters(params));
   DCHECK(params->backdrop_filter_quality);
   DCHECK(!params->filters)
       << "Filters should always be in a separate Effect node";
@@ -1098,7 +1100,7 @@
   local_matrix.postScale(quad->filters_scale.x(), quad->filters_scale.y());
   params->filters = FiltersForPass(quad->render_pass_id);
   params->backdrop_filters = BackdropFiltersForPass(quad->render_pass_id);
-  if (ShouldApplyBackdropFilters(params->backdrop_filters)) {
+  if (ShouldApplyBackdropFilters(params)) {
     params->backdrop_filter_bounds =
         BackdropFilterBoundsForPass(quad->render_pass_id);
     if (params->backdrop_filter_bounds.has_value()) {
@@ -1171,7 +1173,7 @@
   params->blend_mode = quad->shared_quad_state->blend_mode;
   params->use_shaders_for_blending =
       !CanApplyBlendModeUsingBlendFunc(params->blend_mode) ||
-      ShouldApplyBackdropFilters(params->backdrop_filters) ||
+      ShouldApplyBackdropFilters(params) ||
       settings_->force_blending_with_shaders;
 
   if (params->use_shaders_for_blending) {
@@ -1197,7 +1199,7 @@
       params->background_texture = GetBackdropTexture(
           params->background_rect, &params->background_texture_format);
 
-      if (ShouldApplyBackdropFilters(params->backdrop_filters)) {
+      if (ShouldApplyBackdropFilters(params)) {
         // Apply the background filters to R, so that it is applied in the
         // pixels' coordinate space.
         params->background_image =
@@ -1216,7 +1218,7 @@
           params->background_texture = 0;
         }
       } else if (CanApplyBlendModeUsingBlendFunc(params->blend_mode) &&
-                 ShouldApplyBackdropFilters(params->backdrop_filters)) {
+                 ShouldApplyBackdropFilters(params)) {
         // Something went wrong with applying backdrop filters to the
         // backdrop.
         params->use_shaders_for_blending = false;
diff --git a/components/viz/service/display/gl_renderer.h b/components/viz/service/display/gl_renderer.h
index 2ef26fff..ed34484 100644
--- a/components/viz/service/display/gl_renderer.h
+++ b/components/viz/service/display/gl_renderer.h
@@ -213,7 +213,8 @@
                               GLenum* internal_format);
 
   static bool ShouldApplyBackdropFilters(
-      const cc::FilterOperations* backdrop_filters);
+      const DrawRenderPassDrawQuadParams* params);
+
   // Applies the backdrop filters to the backdrop that has been painted to this
   // point, and returns it as an SkImage. Any opacity and/or "regular"
   // (non-backdrop) filters will also be applied directly to the backdrop-
diff --git a/components/web_cache/browser/DEPS b/components/web_cache/browser/DEPS
index aa0e5c4..20e264f2 100644
--- a/components/web_cache/browser/DEPS
+++ b/components/web_cache/browser/DEPS
@@ -1,6 +1,7 @@
 include_rules = [
   "+content/public/browser",
   "+content/public",
+  "+mojo/public/cpp/bindings",
   "+services/service_manager/public/cpp",
   "+third_party/blink/public/web",
 ]
diff --git a/components/web_cache/browser/web_cache_manager.cc b/components/web_cache/browser/web_cache_manager.cc
index 3a3e2e11..3423120 100644
--- a/components/web_cache/browser/web_cache_manager.cc
+++ b/components/web_cache/browser/web_cache_manager.cc
@@ -85,8 +85,8 @@
   content::RenderProcessHost* host =
       content::RenderProcessHost::FromID(renderer_id);
   if (host) {
-    mojom::WebCachePtr service;
-    BindInterface(host, &service);
+    mojo::Remote<mojom::WebCache> service;
+    BindInterface(host, service.BindNewPipeAndPassReceiver());
     web_cache_services_[renderer_id] = std::move(service);
   }
 
@@ -306,10 +306,10 @@
       // This is the capacity this renderer has been allocated.
       uint64_t capacity = allocation->second;
 
-      // Find the WebCachePtr by renderer process id.
+      // Find the mojo::Remote<WebCache> by renderer process id.
       auto it = web_cache_services_.find(allocation->first);
       if (it != web_cache_services_.end()) {
-        const mojom::WebCachePtr& service = it->second;
+        const mojo::Remote<mojom::WebCache>& service = it->second;
         DCHECK(service);
         service->SetCacheCapacity(capacity);
       }
@@ -332,10 +332,10 @@
     content::RenderProcessHost* host =
         content::RenderProcessHost::FromID(*iter);
     if (host) {
-      // Find the WebCachePtr by renderer process id.
+      // Find the mojo::Remote<WebCache> by renderer process id.
       auto it = web_cache_services_.find(*iter);
       if (it != web_cache_services_.end()) {
-        const mojom::WebCachePtr& service = it->second;
+        const mojo::Remote<mojom::WebCache>& service = it->second;
         DCHECK(service);
         service->ClearCache(occasion == ON_NAVIGATION);
       }
diff --git a/components/web_cache/browser/web_cache_manager.h b/components/web_cache/browser/web_cache_manager.h
index 200fb2f..31e6f1ca 100644
--- a/components/web_cache/browser/web_cache_manager.h
+++ b/components/web_cache/browser/web_cache_manager.h
@@ -22,6 +22,7 @@
 #include "components/web_cache/public/mojom/web_cache.mojom.h"
 #include "content/public/browser/notification_observer.h"
 #include "content/public/browser/notification_registrar.h"
+#include "mojo/public/cpp/bindings/remote.h"
 
 namespace base {
 template<typename Type>
@@ -133,7 +134,7 @@
   typedef std::list<Allocation> AllocationStrategy;
 
   // The key is the unique id of every render process host.
-  typedef std::map<int, mojom::WebCachePtr> WebCacheServicesMap;
+  typedef std::map<int, mojo::Remote<mojom::WebCache>> WebCacheServicesMap;
 
   // This class is a singleton.  Do not instantiate directly.
   WebCacheManager();
@@ -239,7 +240,8 @@
 
   content::NotificationRegistrar registrar_;
 
-  // Maps every renderer_id with its corresponding mojom::WebCachePtr.
+  // Maps every renderer_id with its corresponding
+  // mojo::Remote<mojom::WebCache>.
   WebCacheServicesMap web_cache_services_;
 
   base::WeakPtrFactory<WebCacheManager> weak_factory_{this};
diff --git a/components/web_cache/renderer/web_cache_impl.cc b/components/web_cache/renderer/web_cache_impl.cc
index 706f0c5..2788cfc0 100644
--- a/components/web_cache/renderer/web_cache_impl.cc
+++ b/components/web_cache/renderer/web_cache_impl.cc
@@ -21,7 +21,7 @@
 WebCacheImpl::WebCacheImpl() : clear_cache_state_(kInit) {
   auto registry = std::make_unique<service_manager::BinderRegistry>();
   registry->AddInterface(
-      base::Bind(&WebCacheImpl::BindRequest, base::Unretained(this)),
+      base::Bind(&WebCacheImpl::BindReceiver, base::Unretained(this)),
       base::ThreadTaskRunnerHandle::Get());
   if (content::ChildThread::Get()) {
     content::ChildThread::Get()
@@ -33,8 +33,9 @@
 
 WebCacheImpl::~WebCacheImpl() {}
 
-void WebCacheImpl::BindRequest(mojom::WebCacheRequest web_cache_request) {
-  bindings_.AddBinding(this, std::move(web_cache_request));
+void WebCacheImpl::BindReceiver(
+    mojo::PendingReceiver<mojom::WebCache> web_cache_receiver) {
+  receivers_.Add(this, std::move(web_cache_receiver));
 }
 
 void WebCacheImpl::ExecutePendingClearCache() {
diff --git a/components/web_cache/renderer/web_cache_impl.h b/components/web_cache/renderer/web_cache_impl.h
index 2314967..ed9e8a3 100644
--- a/components/web_cache/renderer/web_cache_impl.h
+++ b/components/web_cache/renderer/web_cache_impl.h
@@ -11,7 +11,8 @@
 #include "base/compiler_specific.h"
 #include "base/macros.h"
 #include "components/web_cache/public/mojom/web_cache.mojom.h"
-#include "mojo/public/cpp/bindings/binding_set.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
+#include "mojo/public/cpp/bindings/receiver_set.h"
 
 namespace web_cache {
 
@@ -21,7 +22,7 @@
   WebCacheImpl();
   ~WebCacheImpl() override;
 
-  void BindRequest(mojom::WebCacheRequest web_cache_request);
+  void BindReceiver(mojo::PendingReceiver<mojom::WebCache> web_cache_receiver);
 
   // Needs to be called by RenderViews in case of navigations to execute
   // any 'clear cache' commands that were delayed until the next navigation.
@@ -45,7 +46,7 @@
   // get executed on navigation.
   State clear_cache_state_;
 
-  mojo::BindingSet<mojom::WebCache> bindings_;
+  mojo::ReceiverSet<mojom::WebCache> receivers_;
 
   DISALLOW_COPY_AND_ASSIGN(WebCacheImpl);
 };
diff --git a/content/browser/browser_interface_binders.cc b/content/browser/browser_interface_binders.cc
index b1d73727..1d69315 100644
--- a/content/browser/browser_interface_binders.cc
+++ b/content/browser/browser_interface_binders.cc
@@ -24,6 +24,7 @@
 #include "third_party/blink/public/mojom/filesystem/file_system.mojom.h"
 #include "third_party/blink/public/mojom/idle/idle_manager.mojom.h"
 #include "third_party/blink/public/mojom/locks/lock_manager.mojom.h"
+#include "third_party/blink/public/mojom/permissions/permission.mojom.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom.h"
 #include "third_party/blink/public/mojom/speech/speech_synthesis.mojom.h"
 #include "third_party/blink/public/mojom/webaudio/audio_context_manager.mojom.h"
@@ -58,6 +59,9 @@
   map->Add<blink::mojom::IdleManager>(base::BindRepeating(
       &RenderFrameHostImpl::GetIdleManager, base::Unretained(host)));
 
+  map->Add<blink::mojom::PermissionService>(base::BindRepeating(
+      &RenderFrameHostImpl::CreatePermissionService, base::Unretained(host)));
+
   map->Add<blink::mojom::PresentationService>(base::BindRepeating(
       &RenderFrameHostImpl::GetPresentationService, base::Unretained(host)));
 
@@ -122,6 +126,9 @@
   map->Add<blink::mojom::LockManager>(
       base::BindRepeating(&RenderProcessHost::CreateLockManager,
                           base::Unretained(host->GetProcessHost())));
+  map->Add<blink::mojom::PermissionService>(
+      base::BindRepeating(&RenderProcessHost::CreatePermissionService,
+                          base::Unretained(host->GetProcessHost())));
 }
 
 void PopulateBinderMap(DedicatedWorkerHost* host,
@@ -154,6 +161,9 @@
   map->Add<blink::mojom::LockManager>(
       base::BindRepeating(&RenderProcessHost::CreateLockManager,
                           base::Unretained(host->GetProcessHost())));
+  map->Add<blink::mojom::PermissionService>(
+      base::BindRepeating(&RenderProcessHost::CreatePermissionService,
+                          base::Unretained(host->GetProcessHost())));
 }
 
 void PopulateBinderMap(SharedWorkerHost* host,
@@ -176,6 +186,10 @@
 
   map->Add<blink::mojom::LockManager>(base::BindRepeating(
       &ServiceWorkerProviderHost::CreateLockManager, base::Unretained(host)));
+
+  map->Add<blink::mojom::PermissionService>(
+      base::BindRepeating(&ServiceWorkerProviderHost::CreatePermissionService,
+                          base::Unretained(host)));
 }
 
 void PopulateBinderMapWithContext(
diff --git a/content/browser/devtools/devtools_url_loader_interceptor.cc b/content/browser/devtools/devtools_url_loader_interceptor.cc
index e71bb7b..9247c39 100644
--- a/content/browser/devtools/devtools_url_loader_interceptor.cc
+++ b/content/browser/devtools/devtools_url_loader_interceptor.cc
@@ -9,16 +9,13 @@
 #include "base/no_destructor.h"
 #include "base/strings/pattern.h"
 #include "base/strings/stringprintf.h"
-#include "base/task/post_task.h"
 #include "base/time/time.h"
 #include "base/unguessable_token.h"
-#include "content/browser/devtools/cross_thread_protocol_callback.h"
 #include "content/browser/devtools/protocol/network.h"
 #include "content/browser/devtools/protocol/network_handler.h"
 #include "content/browser/frame_host/frame_tree_node.h"
 #include "content/browser/loader/download_utils_impl.h"
 #include "content/public/browser/browser_task_traits.h"
-#include "content/public/browser/browser_thread.h"
 #include "content/public/browser/storage_partition.h"
 #include "mojo/public/cpp/bindings/binding_set.h"
 #include "mojo/public/cpp/system/data_pipe_drainer.h"
@@ -129,21 +126,6 @@
   return base::MatchPattern(url, url_pattern);
 }
 
-namespace {
-
-using RequestInterceptedCallback =
-    DevToolsURLLoaderInterceptor::RequestInterceptedCallback;
-using ContinueInterceptedRequestCallback =
-    DevToolsURLLoaderInterceptor::ContinueInterceptedRequestCallback;
-using GetResponseBodyCallback =
-    DevToolsURLLoaderInterceptor::GetResponseBodyForInterceptionCallback;
-using TakeResponseBodyPipeCallback =
-    DevToolsURLLoaderInterceptor::TakeResponseBodyPipeCallback;
-using Modifications = DevToolsURLLoaderInterceptor::Modifications;
-using InterceptionStage = DevToolsURLLoaderInterceptor::InterceptionStage;
-using protocol::Response;
-using GlobalRequestId = std::tuple<int32_t, int32_t, int32_t>;
-
 struct CreateLoaderParameters {
   CreateLoaderParameters(
       int32_t routing_id,
@@ -164,6 +146,21 @@
   const net::MutableNetworkTrafficAnnotationTag traffic_annotation;
 };
 
+namespace {
+
+using RequestInterceptedCallback =
+    DevToolsURLLoaderInterceptor::RequestInterceptedCallback;
+using ContinueInterceptedRequestCallback =
+    DevToolsURLLoaderInterceptor::ContinueInterceptedRequestCallback;
+using GetResponseBodyCallback =
+    DevToolsURLLoaderInterceptor::GetResponseBodyForInterceptionCallback;
+using TakeResponseBodyPipeCallback =
+    DevToolsURLLoaderInterceptor::TakeResponseBodyPipeCallback;
+using Modifications = DevToolsURLLoaderInterceptor::Modifications;
+using InterceptionStage = DevToolsURLLoaderInterceptor::InterceptionStage;
+using protocol::Response;
+using GlobalRequestId = std::tuple<int32_t, int32_t, int32_t>;
+
 class BodyReader : public mojo::DataPipeDrainer::Client {
  public:
   explicit BodyReader(base::OnceClosure download_complete_callback)
@@ -172,11 +169,10 @@
 
   void StartReading(mojo::ScopedDataPipeConsumerHandle body);
 
-  using GetBodyCallback = CrossThreadProtocolCallback<GetResponseBodyCallback>;
-  void AddCallback(GetBodyCallback callback) {
+  void AddCallback(std::unique_ptr<GetResponseBodyCallback> callback) {
     if (data_complete_) {
       DCHECK(callbacks_.empty());
-      callback.sendSuccess(encoded_body_, true);
+      callback->sendSuccess(encoded_body_, true);
       return;
     }
     callbacks_.push_back(std::move(callback));
@@ -191,7 +187,7 @@
 
   void CancelWithError(std::string error) {
     for (auto& cb : callbacks_)
-      cb.sendFailure(Response::Error(error));
+      cb->sendFailure(Response::Error(error));
     callbacks_.clear();
   }
 
@@ -205,7 +201,7 @@
   void OnDataComplete() override;
 
   std::unique_ptr<mojo::DataPipeDrainer> body_pipe_drainer_;
-  std::vector<GetBodyCallback> callbacks_;
+  std::vector<std::unique_ptr<GetResponseBodyCallback>> callbacks_;
   base::OnceClosure download_complete_callback_;
   scoped_refptr<base::RefCountedString> body_;
   std::string encoded_body_;
@@ -227,7 +223,7 @@
   // TODO(caseq): only encode if necessary.
   base::Base64Encode(body_->data(), &encoded_body_);
   for (auto& cb : callbacks_)
-    cb.sendSuccess(encoded_body_, true);
+    cb->sendSuccess(encoded_body_, true);
   callbacks_.clear();
   std::move(download_complete_callback_).Run();
 }
@@ -245,6 +241,8 @@
   network::URLLoaderCompletionStatus status;
 };
 
+}  // namespace
+
 class InterceptionJob : public network::mojom::URLLoaderClient,
                         public network::mojom::URLLoader {
  public:
@@ -256,7 +254,7 @@
   }
 
   InterceptionJob(
-      DevToolsURLLoaderInterceptor::Impl* interceptor,
+      DevToolsURLLoaderInterceptor* interceptor,
       const std::string& id,
       const base::UnguessableToken& frame_token,
       int32_t process_id,
@@ -268,12 +266,11 @@
       network::mojom::URLLoaderFactoryPtr target_factory,
       mojo::PendingRemote<network::mojom::CookieManager> cookie_manager);
 
-  void GetResponseBody(
-      CrossThreadProtocolCallback<GetResponseBodyCallback> callback);
+  void GetResponseBody(std::unique_ptr<GetResponseBodyCallback> callback);
   void TakeResponseBodyPipe(TakeResponseBodyPipeCallback callback);
   void ContinueInterceptedRequest(
       std::unique_ptr<Modifications> modifications,
-      CrossThreadProtocolCallback<ContinueInterceptedRequestCallback> callback);
+      std::unique_ptr<ContinueInterceptedRequestCallback> callback);
   void Detach();
 
   void OnAuthRequest(
@@ -282,7 +279,6 @@
 
  private:
   static std::map<GlobalRequestId, InterceptionJob*>& GetInterceptionJobMap() {
-    DCHECK_CURRENTLY_ON(content::BrowserThread::IO);
     static base::NoDestructor<std::map<GlobalRequestId, InterceptionJob*>> inst;
     return *inst;
   }
@@ -363,7 +359,7 @@
   const base::UnguessableToken frame_token_;
   const bool report_upload_;
 
-  DevToolsURLLoaderInterceptor::Impl* interceptor_;
+  DevToolsURLLoaderInterceptor* interceptor_;
   InterceptionStage stage_;
 
   std::unique_ptr<CreateLoaderParameters> create_loader_params_;
@@ -409,120 +405,40 @@
   DISALLOW_COPY_AND_ASSIGN(InterceptionJob);
 };
 
-}  // namespace
+void DevToolsURLLoaderInterceptor::CreateJob(
+    const base::UnguessableToken& frame_token,
+    int32_t process_id,
+    bool is_download,
+    const base::Optional<std::string>& renderer_request_id,
+    std::unique_ptr<CreateLoaderParameters> create_params,
+    network::mojom::URLLoaderRequest loader_request,
+    network::mojom::URLLoaderClientPtr client,
+    network::mojom::URLLoaderFactoryPtr target_factory,
+    mojo::PendingRemote<network::mojom::CookieManager> cookie_manager) {
+  DCHECK(!frame_token.is_empty());
 
-class DevToolsURLLoaderInterceptor::Impl
-    : public base::SupportsWeakPtr<DevToolsURLLoaderInterceptor::Impl> {
- public:
-  explicit Impl(RequestInterceptedCallback callback)
-      : request_intercepted_callback_(callback), handle_auth_(false) {}
-  ~Impl() {
-    for (auto const& entry : jobs_)
-      entry.second->Detach();
+  static int last_id = 0;
+
+  std::string id = base::StringPrintf("interception-job-%d", ++last_id);
+  // This class will manage its own life time to match the loader client.
+  new InterceptionJob(this, std::move(id), frame_token, process_id,
+                      renderer_request_id, std::move(create_params),
+                      is_download, std::move(loader_request), std::move(client),
+                      std::move(target_factory), std::move(cookie_manager));
+}
+
+InterceptionStage DevToolsURLLoaderInterceptor::GetInterceptionStage(
+    const GURL& url,
+    ResourceType resource_type) const {
+  InterceptionStage stage = InterceptionStage::DONT_INTERCEPT;
+  std::string unused;
+  std::string url_str = protocol::NetworkHandler::ExtractFragment(url, &unused);
+  for (const auto& pattern : patterns_) {
+    if (pattern.Matches(url_str, resource_type))
+      stage |= pattern.interception_stage;
   }
-
-  void CreateJob(
-      const base::UnguessableToken& frame_token,
-      int32_t process_id,
-      bool is_download,
-      const base::Optional<std::string>& renderer_request_id,
-      std::unique_ptr<CreateLoaderParameters> create_params,
-      network::mojom::URLLoaderRequest loader_request,
-      network::mojom::URLLoaderClientPtr client,
-      network::mojom::URLLoaderFactoryPtr target_factory,
-      mojo::PendingRemote<network::mojom::CookieManager> cookie_manager) {
-    DCHECK(!frame_token.is_empty());
-
-    static int last_id = 0;
-
-    std::string id = base::StringPrintf("interception-job-%d", ++last_id);
-    // This class will manage its own life time to match the loader client.
-    new InterceptionJob(this, std::move(id), frame_token, process_id,
-                        renderer_request_id, std::move(create_params),
-                        is_download, std::move(loader_request),
-                        std::move(client), std::move(target_factory),
-                        std::move(cookie_manager));
-  }
-
-  void SetPatterns(std::vector<DevToolsURLLoaderInterceptor::Pattern> patterns,
-                   bool handle_auth) {
-    patterns_ = std::move(patterns);
-    handle_auth_ = handle_auth;
-  }
-
-  InterceptionStage GetInterceptionStage(const GURL& url,
-                                         ResourceType resource_type) const {
-    InterceptionStage stage = InterceptionStage::DONT_INTERCEPT;
-    std::string unused;
-    std::string url_str =
-        protocol::NetworkHandler::ExtractFragment(url, &unused);
-    for (const auto& pattern : patterns_) {
-      if (pattern.Matches(url_str, resource_type))
-        stage |= pattern.interception_stage;
-    }
-    return stage;
-  }
-
-  void GetResponseBody(
-      const std::string& interception_id,
-      CrossThreadProtocolCallback<GetResponseBodyCallback> callback) {
-    if (InterceptionJob* job = FindJob(interception_id, &callback))
-      job->GetResponseBody(std::move(callback));
-  }
-
-  void TakeResponseBodyPipe(
-      const std::string& interception_id,
-      DevToolsURLLoaderInterceptor::TakeResponseBodyPipeCallback callback) {
-    auto it = jobs_.find(interception_id);
-    if (it == jobs_.end()) {
-      base::PostTask(
-          FROM_HERE, {BrowserThread::UI},
-          base::BindOnce(
-              std::move(callback),
-              protocol::Response::InvalidParams("Invalid InterceptionId."),
-              mojo::ScopedDataPipeConsumerHandle(), std::string()));
-      return;
-    }
-    it->second->TakeResponseBodyPipe(std::move(callback));
-  }
-
-  void ContinueInterceptedRequest(
-      const std::string& interception_id,
-      std::unique_ptr<Modifications> modifications,
-      CrossThreadProtocolCallback<ContinueInterceptedRequestCallback>
-          callback) {
-    if (InterceptionJob* job = FindJob(interception_id, &callback)) {
-      job->ContinueInterceptedRequest(std::move(modifications),
-                                      std::move(callback));
-    }
-  }
-
- private:
-  friend class content::InterceptionJob;
-
-  template <typename Callback>
-  InterceptionJob* FindJob(const std::string& id,
-                           CrossThreadProtocolCallback<Callback>* callback) {
-    auto it = jobs_.find(id);
-    if (it != jobs_.end())
-      return it->second;
-    callback->sendFailure(
-        protocol::Response::InvalidParams("Invalid InterceptionId."));
-    return nullptr;
-  }
-
-  void RemoveJob(const std::string& id) { jobs_.erase(id); }
-  void AddJob(const std::string& id, InterceptionJob* job) {
-    jobs_.emplace(id, job);
-  }
-
-  std::map<std::string, InterceptionJob*> jobs_;
-  RequestInterceptedCallback request_intercepted_callback_;
-  std::vector<DevToolsURLLoaderInterceptor::Pattern> patterns_;
-  bool handle_auth_;
-
-  DISALLOW_COPY_AND_ASSIGN(Impl);
-};
+  return stage;
+}
 
 class DevToolsURLLoaderFactoryProxy : public network::mojom::URLLoaderFactory {
  public:
@@ -533,7 +449,7 @@
       network::mojom::URLLoaderFactoryRequest loader_request,
       network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
       mojo::PendingRemote<network::mojom::CookieManager> cookie_manager,
-      base::WeakPtr<DevToolsURLLoaderInterceptor::Impl> interceptor);
+      base::WeakPtr<DevToolsURLLoaderInterceptor> interceptor);
   ~DevToolsURLLoaderFactoryProxy() override;
 
  private:
@@ -548,10 +464,6 @@
                                 traffic_annotation) override;
   void Clone(network::mojom::URLLoaderFactoryRequest request) override;
 
-  void StartOnIO(
-      network::mojom::URLLoaderFactoryRequest loader_request,
-      network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
-      mojo::PendingRemote<network::mojom::CookieManager> cookie_manager);
   void OnProxyBindingError();
   void OnTargetFactoryError();
 
@@ -561,12 +473,14 @@
 
   network::mojom::URLLoaderFactoryPtr target_factory_;
   mojo::Remote<network::mojom::CookieManager> cookie_manager_;
-  base::WeakPtr<DevToolsURLLoaderInterceptor::Impl> interceptor_;
+  base::WeakPtr<DevToolsURLLoaderInterceptor> interceptor_;
   mojo::BindingSet<network::mojom::URLLoaderFactory> bindings_;
 
   SEQUENCE_CHECKER(sequence_checker_);
 };
 
+// This class owns itself and will delete self when any mojo
+// connection is broken.
 DevToolsURLLoaderFactoryProxy::DevToolsURLLoaderFactoryProxy(
     const base::UnguessableToken& frame_token,
     int32_t process_id,
@@ -574,18 +488,25 @@
     network::mojom::URLLoaderFactoryRequest loader_request,
     network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
     mojo::PendingRemote<network::mojom::CookieManager> cookie_manager,
-    base::WeakPtr<DevToolsURLLoaderInterceptor::Impl> interceptor)
+    base::WeakPtr<DevToolsURLLoaderInterceptor> interceptor)
     : frame_token_(frame_token),
       process_id_(process_id),
       is_download_(is_download),
       interceptor_(std::move(interceptor)) {
-  DETACH_FROM_SEQUENCE(sequence_checker_);
-  base::PostTask(
-      FROM_HERE, {BrowserThread::IO},
-      base::BindOnce(&DevToolsURLLoaderFactoryProxy::StartOnIO,
-                     base::Unretained(this), std::move(loader_request),
-                     std::move(target_factory_info),
-                     std::move(cookie_manager)));
+  target_factory_.Bind(std::move(target_factory_info));
+  target_factory_.set_connection_error_handler(
+      base::BindOnce(&DevToolsURLLoaderFactoryProxy::OnTargetFactoryError,
+                     base::Unretained(this)));
+
+  bindings_.AddBinding(this, std::move(loader_request));
+  bindings_.set_connection_error_handler(
+      base::BindRepeating(&DevToolsURLLoaderFactoryProxy::OnProxyBindingError,
+                          base::Unretained(this)));
+
+  cookie_manager_.Bind(std::move(cookie_manager));
+  cookie_manager_.set_disconnect_handler(
+      base::BindOnce(&DevToolsURLLoaderFactoryProxy::OnTargetFactoryError,
+                     base::Unretained(this)));
 }
 
 DevToolsURLLoaderFactoryProxy::~DevToolsURLLoaderFactoryProxy() {}
@@ -600,7 +521,7 @@
     const net::MutableNetworkTrafficAnnotationTag& traffic_annotation) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
 
-  DevToolsURLLoaderInterceptor::Impl* interceptor = interceptor_.get();
+  DevToolsURLLoaderInterceptor* interceptor = interceptor_.get();
   if (!interceptor_ || request.url.SchemeIs(url::kDataScheme)) {
     target_factory_->CreateLoaderAndStart(
         std::move(loader), routing_id, request_id, options, request,
@@ -620,26 +541,6 @@
       std::move(factory_clone), std::move(cookie_manager_clone));
 }
 
-void DevToolsURLLoaderFactoryProxy::StartOnIO(
-    network::mojom::URLLoaderFactoryRequest loader_request,
-    network::mojom::URLLoaderFactoryPtrInfo target_factory_info,
-    mojo::PendingRemote<network::mojom::CookieManager> cookie_manager) {
-  target_factory_.Bind(std::move(target_factory_info));
-  target_factory_.set_connection_error_handler(
-      base::BindOnce(&DevToolsURLLoaderFactoryProxy::OnTargetFactoryError,
-                     base::Unretained(this)));
-
-  bindings_.AddBinding(this, std::move(loader_request));
-  bindings_.set_connection_error_handler(
-      base::BindRepeating(&DevToolsURLLoaderFactoryProxy::OnProxyBindingError,
-                          base::Unretained(this)));
-
-  cookie_manager_.Bind(std::move(cookie_manager));
-  cookie_manager_.set_disconnect_handler(
-      base::BindOnce(&DevToolsURLLoaderFactoryProxy::OnTargetFactoryError,
-                     base::Unretained(this)));
-}
-
 void DevToolsURLLoaderFactoryProxy::Clone(
     network::mojom::URLLoaderFactoryRequest request) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(sequence_checker_);
@@ -671,52 +572,49 @@
 
 DevToolsURLLoaderInterceptor::DevToolsURLLoaderInterceptor(
     RequestInterceptedCallback callback)
-    : enabled_(false),
-      impl_(new DevToolsURLLoaderInterceptor::Impl(std::move(callback)),
-            base::OnTaskRunnerDeleter(
-                base::CreateSingleThreadTaskRunner({BrowserThread::IO}))),
-      weak_impl_(impl_->AsWeakPtr()) {}
+    : request_intercepted_callback_(std::move(callback)), weak_factory_(this) {}
 
-DevToolsURLLoaderInterceptor::~DevToolsURLLoaderInterceptor() = default;
+DevToolsURLLoaderInterceptor::~DevToolsURLLoaderInterceptor() {
+  for (auto const& entry : jobs_)
+    entry.second->Detach();
+}
 
 void DevToolsURLLoaderInterceptor::SetPatterns(
     std::vector<DevToolsURLLoaderInterceptor::Pattern> patterns,
     bool handle_auth) {
-  enabled_ = !!patterns.size();
-  DCHECK(enabled_ || !handle_auth);
-  base::PostTask(
-      FROM_HERE, {BrowserThread::IO},
-      base::BindOnce(&Impl::SetPatterns, base::Unretained(impl_.get()),
-                     std::move(patterns), handle_auth));
+  patterns_ = std::move(patterns);
+  handle_auth_ = handle_auth;
+  DCHECK(patterns_.size() || !handle_auth);
 }
 
 void DevToolsURLLoaderInterceptor::GetResponseBody(
     const std::string& interception_id,
     std::unique_ptr<GetResponseBodyCallback> callback) {
-  base::PostTask(FROM_HERE, {BrowserThread::IO},
-                 base::BindOnce(&Impl::GetResponseBody,
-                                base::Unretained(impl_.get()), interception_id,
-                                WrapForAnotherThread(std::move(callback))));
+  if (InterceptionJob* job = FindJob(interception_id, &callback))
+    job->GetResponseBody(std::move(callback));
 }
 
 void DevToolsURLLoaderInterceptor::TakeResponseBodyPipe(
     const std::string& interception_id,
     DevToolsURLLoaderInterceptor::TakeResponseBodyPipeCallback callback) {
-  base::PostTask(
-      FROM_HERE, {BrowserThread::IO},
-      base::BindOnce(&Impl::TakeResponseBodyPipe, base::Unretained(impl_.get()),
-                     interception_id, std::move(callback)));
+  auto it = jobs_.find(interception_id);
+  if (it == jobs_.end()) {
+    std::move(callback).Run(
+        protocol::Response::InvalidParams("Invalid InterceptionId."),
+        mojo::ScopedDataPipeConsumerHandle(), base::EmptyString());
+    return;
+  }
+  it->second->TakeResponseBodyPipe(std::move(callback));
 }
 
 void DevToolsURLLoaderInterceptor::ContinueInterceptedRequest(
     const std::string& interception_id,
     std::unique_ptr<Modifications> modifications,
     std::unique_ptr<ContinueInterceptedRequestCallback> callback) {
-  base::PostTask(FROM_HERE, {BrowserThread::IO},
-                 base::BindOnce(&Impl::ContinueInterceptedRequest,
-                                base::Unretained(impl_.get()), interception_id,
-                                std::move(modifications),
-                                WrapForAnotherThread(std::move(callback))));
+  if (InterceptionJob* job = FindJob(interception_id, &callback)) {
+    job->ContinueInterceptedRequest(std::move(modifications),
+                                    std::move(callback));
+  }
 }
 
 bool DevToolsURLLoaderInterceptor::CreateProxyForInterception(
@@ -724,8 +622,8 @@
     const base::UnguessableToken& frame_token,
     bool is_navigation,
     bool is_download,
-    mojo::PendingReceiver<network::mojom::URLLoaderFactory>* receiver) const {
-  if (!enabled_)
+    mojo::PendingReceiver<network::mojom::URLLoaderFactory>* receiver) {
+  if (patterns_.empty())
     return false;
 
   // TODO(crbug.com/955171): Replace these with PendingReceiver and
@@ -740,12 +638,13 @@
       cookie_manager.InitWithNewPipeAndPassReceiver());
   new DevToolsURLLoaderFactoryProxy(
       frame_token, process_id, is_download, std::move(original_request),
-      std::move(target_ptr_info), std::move(cookie_manager), weak_impl_);
+      std::move(target_ptr_info), std::move(cookie_manager),
+      weak_factory_.GetWeakPtr());
   return true;
 }
 
 InterceptionJob::InterceptionJob(
-    DevToolsURLLoaderInterceptor::Impl* interceptor,
+    DevToolsURLLoaderInterceptor* interceptor,
     const std::string& id,
     const base::UnguessableToken& frame_token,
     int process_id,
@@ -830,10 +729,10 @@
 }
 
 void InterceptionJob::GetResponseBody(
-    CrossThreadProtocolCallback<GetResponseBodyCallback> callback) {
+    std::unique_ptr<GetResponseBodyCallback> callback) {
   std::string error_reason;
   if (!CanGetResponseBody(&error_reason)) {
-    callback.sendFailure(Response::Error(std::move(error_reason)));
+    callback->sendFailure(Response::Error(std::move(error_reason)));
     return;
   }
   if (!body_reader_) {
@@ -849,11 +748,9 @@
     TakeResponseBodyPipeCallback callback) {
   std::string error_reason;
   if (!CanGetResponseBody(&error_reason)) {
-    base::PostTask(
-        FROM_HERE, {BrowserThread::UI},
-        base::BindOnce(std::move(callback),
-                       Response::Error(std::move(error_reason)),
-                       mojo::ScopedDataPipeConsumerHandle(), std::string()));
+    std::move(callback).Run(Response::Error(std::move(error_reason)),
+                            mojo::ScopedDataPipeConsumerHandle(),
+                            base::EmptyString());
     return;
   }
   DCHECK_EQ(state_, State::kResponseReceived);
@@ -866,13 +763,13 @@
 
 void InterceptionJob::ContinueInterceptedRequest(
     std::unique_ptr<Modifications> modifications,
-    CrossThreadProtocolCallback<ContinueInterceptedRequestCallback> callback) {
+    std::unique_ptr<ContinueInterceptedRequestCallback> callback) {
   Response response = InnerContinueRequest(std::move(modifications));
   // |this| may be destroyed at this point.
   if (response.isSuccess())
-    callback.sendSuccess();
+    callback->sendSuccess();
   else
-    callback.sendFailure(std::move(response));
+    callback->sendFailure(std::move(response));
 }
 
 void InterceptionJob::Detach() {
@@ -1307,9 +1204,7 @@
           create_loader_params_->request, cookie_line);
 
   waiting_for_resolution_ = true;
-  base::PostTask(FROM_HERE, {BrowserThread::UI},
-                 base::BindOnce(interceptor_->request_intercepted_callback_,
-                                std::move(request_info)));
+  interceptor_->request_intercepted_callback_.Run(std::move(request_info));
 }
 
 void InterceptionJob::Shutdown() {
@@ -1455,11 +1350,9 @@
   if (pending_response_body_pipe_callback_) {
     DCHECK_EQ(State::kResponseTaken, state_);
     DCHECK(!body_reader_);
-    base::PostTask(
-        FROM_HERE, {BrowserThread::UI},
-        base::BindOnce(std::move(pending_response_body_pipe_callback_),
-                       Response::OK(), std::move(body),
-                       response_metadata_->head.mime_type));
+    std::move(pending_response_body_pipe_callback_)
+        .Run(Response::OK(), std::move(body),
+             response_metadata_->head.mime_type);
     return;
   }
   DCHECK_EQ(State::kResponseReceived, state_);
diff --git a/content/browser/devtools/devtools_url_loader_interceptor.h b/content/browser/devtools/devtools_url_loader_interceptor.h
index d28b9746..7a381736 100644
--- a/content/browser/devtools/devtools_url_loader_interceptor.h
+++ b/content/browser/devtools/devtools_url_loader_interceptor.h
@@ -15,6 +15,7 @@
 #include "mojo/public/cpp/system/data_pipe.h"
 #include "net/base/auth.h"
 #include "net/base/net_errors.h"
+#include "services/network/public/mojom/cookie_manager.mojom.h"
 #include "services/network/public/mojom/url_loader_factory.mojom.h"
 
 namespace net {
@@ -24,7 +25,9 @@
 
 namespace content {
 
+class InterceptionJob;
 class RenderProcessHost;
+struct CreateLoaderParameters;
 
 struct InterceptedRequestInfo {
   InterceptedRequestInfo();
@@ -154,8 +157,6 @@
     DISALLOW_COPY_AND_ASSIGN(FilterEntry);
   };
 
-  class Impl;
-
   using HandleAuthRequestCallback =
       base::OnceCallback<void(bool use_fallback,
                               const base::Optional<net::AuthCredentials>&)>;
@@ -187,12 +188,49 @@
       bool is_navigation,
       bool is_download,
       mojo::PendingReceiver<network::mojom::URLLoaderFactory>*
-          target_factory_receiver) const;
+          target_factory_receiver);
 
  private:
-  bool enabled_;
-  std::unique_ptr<Impl, base::OnTaskRunnerDeleter> impl_;
-  base::WeakPtr<Impl> weak_impl_;
+  friend class InterceptionJob;
+  friend class DevToolsURLLoaderFactoryProxy;
+
+  void CreateJob(
+      const base::UnguessableToken& frame_token,
+      int32_t process_id,
+      bool is_download,
+      const base::Optional<std::string>& renderer_request_id,
+      std::unique_ptr<CreateLoaderParameters> create_params,
+      network::mojom::URLLoaderRequest loader_request,
+      network::mojom::URLLoaderClientPtr client,
+      network::mojom::URLLoaderFactoryPtr target_factory,
+      mojo::PendingRemote<network::mojom::CookieManager> cookie_manager);
+
+  InterceptionStage GetInterceptionStage(const GURL& url,
+                                         ResourceType resource_type) const;
+
+  template <typename Callback>
+  InterceptionJob* FindJob(const std::string& id,
+                           std::unique_ptr<Callback>* callback) {
+    auto it = jobs_.find(id);
+    if (it != jobs_.end())
+      return it->second;
+    (*callback)->sendFailure(
+        protocol::Response::InvalidParams("Invalid InterceptionId."));
+    return nullptr;
+  }
+
+  void RemoveJob(const std::string& id) { jobs_.erase(id); }
+  void AddJob(const std::string& id, InterceptionJob* job) {
+    jobs_.emplace(id, job);
+  }
+
+  const RequestInterceptedCallback request_intercepted_callback_;
+
+  std::vector<Pattern> patterns_;
+  bool handle_auth_ = false;
+  std::map<std::string, InterceptionJob*> jobs_;
+
+  base::WeakPtrFactory<DevToolsURLLoaderInterceptor> weak_factory_;
 
   DISALLOW_COPY_AND_ASSIGN(DevToolsURLLoaderInterceptor);
 };
diff --git a/content/browser/display_cutout/display_cutout_browsertest.cc b/content/browser/display_cutout/display_cutout_browsertest.cc
index 3a2b94a4..86fb21c 100644
--- a/content/browser/display_cutout/display_cutout_browsertest.cc
+++ b/content/browser/display_cutout/display_cutout_browsertest.cc
@@ -22,6 +22,7 @@
 #include "content/public/test/test_utils.h"
 #include "content/shell/browser/shell.h"
 #include "content/test/content_browser_test_utils_internal.h"
+#include "mojo/public/cpp/bindings/associated_remote.h"
 #include "net/test/embedded_test_server/embedded_test_server.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
@@ -159,8 +160,9 @@
   }
 
   void SendSafeAreaToFrame(int top, int left, int bottom, int right) {
-    blink::mojom::DisplayCutoutClientAssociatedPtr client;
-    MainFrame()->GetRemoteAssociatedInterfaces()->GetInterface(&client);
+    mojo::AssociatedRemote<blink::mojom::DisplayCutoutClient> client;
+    MainFrame()->GetRemoteAssociatedInterfaces()->GetInterface(
+        client.BindNewEndpointAndPassReceiver());
     client->SetSafeArea(
         blink::mojom::DisplayCutoutSafeArea::New(top, left, bottom, right));
   }
diff --git a/content/browser/display_cutout/display_cutout_host_impl.cc b/content/browser/display_cutout/display_cutout_host_impl.cc
index 5d61832f..fb4f91f 100644
--- a/content/browser/display_cutout/display_cutout_host_impl.cc
+++ b/content/browser/display_cutout/display_cutout_host_impl.cc
@@ -7,6 +7,7 @@
 #include "content/browser/display_cutout/display_cutout_constants.h"
 #include "content/browser/web_contents/web_contents_impl.h"
 #include "content/public/browser/navigation_handle.h"
+#include "mojo/public/cpp/bindings/associated_remote.h"
 #include "services/metrics/public/cpp/ukm_builders.h"
 #include "third_party/blink/public/common/associated_interfaces/associated_interface_provider.h"
 
@@ -146,8 +147,8 @@
   if (!provider)
     return;
 
-  blink::mojom::DisplayCutoutClientAssociatedPtr client;
-  provider->GetInterface(&client);
+  mojo::AssociatedRemote<blink::mojom::DisplayCutoutClient> client;
+  provider->GetInterface(client.BindNewEndpointAndPassReceiver());
   client->SetSafeArea(blink::mojom::DisplayCutoutSafeArea::New(
       insets.top(), insets.left(), insets.bottom(), insets.right()));
 }
diff --git a/content/browser/download/download_browsertest.cc b/content/browser/download/download_browsertest.cc
index 10a9fb8f..ab2f2a88 100644
--- a/content/browser/download/download_browsertest.cc
+++ b/content/browser/download/download_browsertest.cc
@@ -3760,10 +3760,8 @@
                download->GetTargetFilePath().BaseName().value().c_str());
 }
 
-// Flaky on multiple platforms: https://crbug.com/810982
 // Verify parallel download in normal case.
-IN_PROC_BROWSER_TEST_F(ParallelDownloadTest,
-                       DISABLED_ParallelDownloadComplete) {
+IN_PROC_BROWSER_TEST_F(ParallelDownloadTest, ParallelDownloadComplete) {
   TestDownloadHttpResponse::Parameters parameters;
   parameters.etag = "ABC";
   parameters.size = 5097152;
diff --git a/content/browser/frame_host/render_frame_host_delegate.h b/content/browser/frame_host/render_frame_host_delegate.h
index 7bab731..7ab07c2 100644
--- a/content/browser/frame_host/render_frame_host_delegate.h
+++ b/content/browser/frame_host/render_frame_host_delegate.h
@@ -193,6 +193,9 @@
   virtual void FrameSizeChanged(RenderFrameHost* render_frame_host,
                                 const gfx::Size& frame_size) {}
 
+  // The DOMContentLoaded handler in the frame has completed.
+  virtual void DOMContentLoaded(RenderFrameHost* render_frame_host) {}
+
   // The onload handler in the frame has completed. Only called for the top-
   // level frame.
   virtual void DocumentOnLoadCompleted(RenderFrameHost* render_frame_host) {}
diff --git a/content/browser/frame_host/render_frame_host_impl.cc b/content/browser/frame_host/render_frame_host_impl.cc
index 92e5d7cb..e3a89a3 100644
--- a/content/browser/frame_host/render_frame_host_impl.cc
+++ b/content/browser/frame_host/render_frame_host_impl.cc
@@ -1536,6 +1536,8 @@
     IPC_MESSAGE_HANDLER(FrameHostMsg_ExitFullscreen, OnExitFullscreen)
     IPC_MESSAGE_HANDLER(FrameHostMsg_SuddenTerminationDisablerChanged,
                         OnSuddenTerminationDisablerChanged)
+    IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishDocumentLoad,
+                        OnDidFinishDocumentLoad)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DidStopLoading, OnDidStopLoading)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DidChangeLoadProgress,
                         OnDidChangeLoadProgress)
@@ -2454,6 +2456,7 @@
   // re-fire the DidStartLoading event, which we don't want since it has already
   // been fired.
   is_loading_ = true;
+  dom_content_loaded_ = false;
 
   DidCommitNavigationInternal(std::move(owned_request), validated_params.get(),
                               /*is_same_document_navigation=*/false);
@@ -3727,6 +3730,11 @@
   return (sudden_termination_disabler_types_enabled_ & disabler_type) != 0;
 }
 
+void RenderFrameHostImpl::OnDidFinishDocumentLoad() {
+  dom_content_loaded_ = true;
+  delegate_->DOMContentLoaded(this);
+}
+
 void RenderFrameHostImpl::OnDidStopLoading() {
   TRACE_EVENT1("navigation", "RenderFrameHostImpl::OnDidStopLoading",
                "frame_tree_node", frame_tree_node_->frame_tree_node_id());
@@ -4328,13 +4336,6 @@
   }
 #endif
 
-  if (!permission_service_context_)
-    permission_service_context_.reset(new PermissionServiceContext(this));
-
-  registry_->AddInterface(
-      base::BindRepeating(&PermissionServiceContext::CreateService,
-                          base::Unretained(permission_service_context_.get())));
-
   registry_->AddInterface(
       base::Bind(&MediaSessionServiceImpl::Create, base::Unretained(this)));
 
@@ -4502,9 +4503,7 @@
       &GetRestrictedCookieManager, base::Unretained(this),
       GetProcess()->GetID(), routing_id_, GetProcess()->GetStoragePartition()));
 
-  if (base::FeatureList::IsEnabled(features::kSmsReceiver) &&
-      base::CommandLine::ForCurrentProcess()->HasSwitch(
-          switches::kEnableExperimentalWebPlatformFeatures)) {
+  if (base::FeatureList::IsEnabled(features::kSmsReceiver)) {
     registry_->AddInterface(base::BindRepeating(
         &RenderFrameHostImpl::BindSmsReceiverReceiver, base::Unretained(this)));
   }
@@ -5424,6 +5423,7 @@
     if (IsURLHandledByNetworkStack(common_params->url))
       last_navigation_previews_state_ = common_params->previews_state;
 
+    dom_content_loaded_ = false;
     SendCommitNavigation(
         navigation_client, navigation_request, std::move(common_params),
         std::move(commit_params), head, std::move(response_body),
@@ -5498,6 +5498,7 @@
 
   // An error page is expected to commit, hence why is_loading_ is set to true.
   is_loading_ = true;
+  dom_content_loaded_ = false;
   DCHECK(navigation_request && navigation_request->IsNavigationStarted() &&
          navigation_request->GetNetErrorCode() != net::OK);
 }
@@ -6464,6 +6465,14 @@
                                   std::move(receiver));
 }
 
+void RenderFrameHostImpl::CreatePermissionService(
+    mojo::PendingReceiver<blink::mojom::PermissionService> receiver) {
+  if (!permission_service_context_)
+    permission_service_context_.reset(new PermissionServiceContext(this));
+
+  permission_service_context_->CreateService(std::move(receiver));
+}
+
 void RenderFrameHostImpl::GetAuthenticator(
     mojo::PendingReceiver<blink::mojom::Authenticator> receiver) {
 #if !defined(OS_ANDROID)
diff --git a/content/browser/frame_host/render_frame_host_impl.h b/content/browser/frame_host/render_frame_host_impl.h
index bfb8fa8..520fe5a 100644
--- a/content/browser/frame_host/render_frame_host_impl.h
+++ b/content/browser/frame_host/render_frame_host_impl.h
@@ -85,6 +85,7 @@
 #include "third_party/blink/public/mojom/frame/navigation_initiator.mojom.h"
 #include "third_party/blink/public/mojom/idle/idle_manager.mojom.h"
 #include "third_party/blink/public/mojom/image_downloader/image_downloader.mojom.h"
+#include "third_party/blink/public/mojom/permissions/permission.mojom.h"
 #include "third_party/blink/public/mojom/presentation/presentation.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h"
 #include "third_party/blink/public/mojom/sms/sms_receiver.mojom-forward.h"
@@ -483,6 +484,9 @@
   // call FrameTreeNode::IsLoading.
   bool is_loading() const { return is_loading_; }
 
+  // Returns true if this frame has fired DOMContentLoaded.
+  bool dom_content_loaded() const { return dom_content_loaded_; }
+
   // Returns true if this is a top-level frame, or if this frame's RenderFrame
   // is in a different process from its parent frame. Local roots are
   // distinguished by owning a RenderWidgetHost, which manages input events
@@ -1073,6 +1077,9 @@
   void GetFileChooser(
       mojo::PendingReceiver<blink::mojom::FileChooser> receiver);
 
+  void CreatePermissionService(
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver);
+
   void CreateWebBluetoothService(
       mojo::PendingReceiver<blink::mojom::WebBluetoothService> receiver);
 
@@ -1315,6 +1322,7 @@
   void OnSuddenTerminationDisablerChanged(
       bool present,
       blink::WebSuddenTerminationDisablerType disabler_type);
+  void OnDidFinishDocumentLoad();
   void OnDidStopLoading();
   void OnDidChangeLoadProgress(double load_progress);
   void OnSelectionChanged(const base::string16& text,
@@ -1992,6 +2000,10 @@
   // document or not.
   bool is_loading_;
 
+  // Indicates whether this RenderFrameHost has completed firing
+  // DOMContentLoaded or not.
+  bool dom_content_loaded_ = false;
+
   // The unique ID of the latest NavigationEntry that this RenderFrameHost is
   // showing. This may change even when this frame hasn't committed a page,
   // such as for a new subframe navigation in a different frame.  Tracking this
diff --git a/content/browser/frame_host/render_frame_host_impl_browsertest.cc b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
index 711b731..a9c912c 100644
--- a/content/browser/frame_host/render_frame_host_impl_browsertest.cc
+++ b/content/browser/frame_host/render_frame_host_impl_browsertest.cc
@@ -3147,4 +3147,65 @@
   }
 }
 
+namespace {
+
+// Calls |callback| whenever a DOMContentLoaded is reached in
+// |render_frame_host|.
+class DOMContentLoadedObserver : public WebContentsObserver {
+ public:
+  DOMContentLoadedObserver(WebContents* web_contents,
+                           base::RepeatingClosure callback)
+      : WebContentsObserver(web_contents), callback_(callback) {}
+
+ protected:
+  // WebContentsObserver:
+  void DocumentLoadedInFrame(RenderFrameHost* render_Frame_host) override {
+    callback_.Run();
+  }
+
+ private:
+  base::RepeatingClosure callback_;
+  DISALLOW_COPY_AND_ASSIGN(DOMContentLoadedObserver);
+};
+
+}  // namespace
+
+IN_PROC_BROWSER_TEST_F(ContentBrowserTest, DocumentLoaded) {
+  net::test_server::ControllableHttpResponse main_document_response(
+      embedded_test_server(), "/main_document");
+
+  EXPECT_TRUE(embedded_test_server()->Start());
+  GURL main_document_url(embedded_test_server()->GetURL("/main_document"));
+
+  WebContents* web_contents = shell()->web_contents();
+  RenderFrameHostImpl* rfhi =
+      static_cast<RenderFrameHostImpl*>(web_contents->GetMainFrame());
+  TestNavigationObserver load_observer(web_contents);
+  base::RunLoop loop_until_dcl;
+  DOMContentLoadedObserver dcl_observer(web_contents,
+                                        loop_until_dcl.QuitClosure());
+  shell()->LoadURL(main_document_url);
+
+  EXPECT_FALSE(rfhi->dom_content_loaded());
+
+  main_document_response.WaitForRequest();
+  main_document_response.Send(
+      "HTTP/1.1 200 OK\r\n"
+      "Connection: close\r\n"
+      "Content-Type: text/html; charset=utf-8\r\n"
+      "\r\n"
+      "<img src='/hung'>");
+
+  load_observer.WaitForNavigationFinished();
+  EXPECT_FALSE(rfhi->dom_content_loaded());
+
+  main_document_response.Done();
+
+  // We should reach DOMContentLoaded, but not onload, since the image resource
+  // is still loading.
+  loop_until_dcl.Run();
+  EXPECT_TRUE(rfhi->is_loading());
+  EXPECT_TRUE(rfhi->dom_content_loaded());
+}
+
 }  // namespace content
diff --git a/content/browser/media/cdm_file_impl.cc b/content/browser/media/cdm_file_impl.cc
index 9c3b5b8..0e62e90d 100644
--- a/content/browser/media/cdm_file_impl.cc
+++ b/content/browser/media/cdm_file_impl.cc
@@ -434,7 +434,6 @@
   DVLOG(3) << __func__ << " file: " << file_name_;
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(file_locked_);
-  DCHECK(!file_reader_);
 
   // Only 1 Read() or Write() is allowed at any time.
   if (read_callback_ || write_callback_) {
@@ -488,7 +487,6 @@
   DVLOG(3) << __func__ << " file: " << file_name_ << ", size: " << data.size();
   DCHECK_CALLED_ON_VALID_THREAD(thread_checker_);
   DCHECK(file_locked_);
-  DCHECK(!file_writer_);
 
   // Only 1 Read() or Write() is allowed at any time.
   if (read_callback_ || write_callback_) {
diff --git a/content/browser/media/cdm_storage_impl_unittest.cc b/content/browser/media/cdm_storage_impl_unittest.cc
index 4e3ba1fe..29ac94a4 100644
--- a/content/browser/media/cdm_storage_impl_unittest.cc
+++ b/content/browser/media/cdm_storage_impl_unittest.cc
@@ -41,6 +41,34 @@
   *rfh = navigation_simulator->GetFinalRenderFrameHost();
 }
 
+// Helper that wraps a base::RunLoop and only quits the RunLoop
+// if the expected number of quit calls have happened.
+class RunLoopWithExpectedCount {
+ public:
+  RunLoopWithExpectedCount() = default;
+  ~RunLoopWithExpectedCount() { DCHECK_EQ(0, remaining_quit_calls_); }
+
+  void Run(int expected_quit_calls) {
+    DCHECK_GT(expected_quit_calls, 0);
+    DCHECK_EQ(remaining_quit_calls_, 0);
+    remaining_quit_calls_ = expected_quit_calls;
+    run_loop_.reset(new base::RunLoop());
+    run_loop_->Run();
+  }
+
+  void Quit() {
+    if (--remaining_quit_calls_ > 0)
+      return;
+    run_loop_->Quit();
+  }
+
+ private:
+  std::unique_ptr<base::RunLoop> run_loop_;
+  int remaining_quit_calls_ = 0;
+
+  DISALLOW_COPY_AND_ASSIGN(RunLoopWithExpectedCount);
+};
+
 }  // namespace
 
 class CdmStorageTest : public RenderViewHostTestHarness {
@@ -78,7 +106,7 @@
     cdm_storage_->Open(
         name, base::BindOnce(&CdmStorageTest::OpenDone, base::Unretained(this),
                              &status, cdm_file));
-    RunAndWaitForResult();
+    RunAndWaitForResult(1);
     return status == CdmStorage::Status::kSuccess;
   }
 
@@ -91,10 +119,27 @@
     CdmFile::Status status;
     cdm_file->Read(base::BindOnce(&CdmStorageTest::FileRead,
                                   base::Unretained(this), &status, data));
-    RunAndWaitForResult();
+    RunAndWaitForResult(1);
     return status == CdmFile::Status::kSuccess;
   }
 
+  // Attempts to reads the contents of the previously opened |cdm_file| twice.
+  // We don't really care about the data, just that 1 read succeeds and the
+  // other fails.
+  void ReadTwice(CdmFile* cdm_file,
+                 CdmFile::Status* status1,
+                 CdmFile::Status* status2) {
+    DVLOG(3) << __func__;
+    std::vector<uint8_t> data1;
+    std::vector<uint8_t> data2;
+
+    cdm_file->Read(base::BindOnce(&CdmStorageTest::FileRead,
+                                  base::Unretained(this), status1, &data1));
+    cdm_file->Read(base::BindOnce(&CdmStorageTest::FileRead,
+                                  base::Unretained(this), status2, &data2));
+    RunAndWaitForResult(2);
+  }
+
   // Writes |data| to the previously opened |cdm_file|, replacing the contents
   // of the file. Returns true if successful, false otherwise.
   bool Write(CdmFile* cdm_file, const std::vector<uint8_t>& data) {
@@ -103,10 +148,25 @@
     CdmFile::Status status;
     cdm_file->Write(data, base::BindOnce(&CdmStorageTest::FileWritten,
                                          base::Unretained(this), &status));
-    RunAndWaitForResult();
+    RunAndWaitForResult(1);
     return status == CdmFile::Status::kSuccess;
   }
 
+  // Attempts to write the contents of the previously opened |cdm_file| twice.
+  // We don't really care about the data, just that 1 read succeeds and the
+  // other fails.
+  void WriteTwice(CdmFile* cdm_file,
+                  CdmFile::Status* status1,
+                  CdmFile::Status* status2) {
+    DVLOG(3) << __func__;
+
+    cdm_file->Write({1, 2, 3}, base::BindOnce(&CdmStorageTest::FileWritten,
+                                              base::Unretained(this), status1));
+    cdm_file->Write({4, 5, 6}, base::BindOnce(&CdmStorageTest::FileWritten,
+                                              base::Unretained(this), status2));
+    RunAndWaitForResult(2);
+  }
+
  private:
   void OpenDone(CdmStorage::Status* status,
                 CdmFileAssociatedPtr* cdm_file,
@@ -120,7 +180,7 @@
     CdmFileAssociatedPtr cdm_file_ptr;
     cdm_file_ptr.Bind(std::move(actual_cdm_file));
     *cdm_file = std::move(cdm_file_ptr);
-    run_loop_->Quit();
+    run_loop_with_count_->Quit();
   }
 
   void FileRead(CdmFile::Status* status,
@@ -130,24 +190,24 @@
     DVLOG(3) << __func__;
     *status = actual_status;
     *data = actual_data;
-    run_loop_->Quit();
+    run_loop_with_count_->Quit();
   }
 
   void FileWritten(CdmFile::Status* status, CdmFile::Status actual_status) {
     DVLOG(3) << __func__;
     *status = actual_status;
-    run_loop_->Quit();
+    run_loop_with_count_->Quit();
   }
 
   // Start running and allow the asynchronous IO operations to complete.
-  void RunAndWaitForResult() {
-    run_loop_.reset(new base::RunLoop());
-    run_loop_->Run();
+  void RunAndWaitForResult(int expected_quit_calls) {
+    run_loop_with_count_ = std::make_unique<RunLoopWithExpectedCount>();
+    run_loop_with_count_->Run(expected_quit_calls);
   }
 
   RenderFrameHost* rfh_ = nullptr;
   CdmStoragePtr cdm_storage_;
-  std::unique_ptr<base::RunLoop> run_loop_;
+  std::unique_ptr<RunLoopWithExpectedCount> run_loop_with_count_;
 };
 
 TEST_F(CdmStorageTest, InvalidFileSystemIdWithSlash) {
@@ -303,4 +363,42 @@
   EXPECT_EQ(0u, data_read.size());
 }
 
+TEST_F(CdmStorageTest, ParallelRead) {
+  Initialize(kTestFileSystemId);
+
+  const char kFileName[] = "duplicate_read_file_name";
+  CdmFileAssociatedPtr cdm_file;
+  EXPECT_TRUE(Open(kFileName, &cdm_file));
+  EXPECT_TRUE(cdm_file.is_bound());
+
+  CdmFile::Status status1;
+  CdmFile::Status status2;
+  ReadTwice(cdm_file.get(), &status1, &status2);
+
+  // One call should succeed, one should fail.
+  EXPECT_TRUE((status1 == CdmFile::Status::kSuccess &&
+               status2 == CdmFile::Status::kFailure) ||
+              (status1 == CdmFile::Status::kFailure &&
+               status2 == CdmFile::Status::kSuccess));
+}
+
+TEST_F(CdmStorageTest, ParallelWrite) {
+  Initialize(kTestFileSystemId);
+
+  const char kFileName[] = "duplicate_write_file_name";
+  CdmFileAssociatedPtr cdm_file;
+  EXPECT_TRUE(Open(kFileName, &cdm_file));
+  EXPECT_TRUE(cdm_file.is_bound());
+
+  CdmFile::Status status1;
+  CdmFile::Status status2;
+  WriteTwice(cdm_file.get(), &status1, &status2);
+
+  // One call should succeed, one should fail.
+  EXPECT_TRUE((status1 == CdmFile::Status::kSuccess &&
+               status2 == CdmFile::Status::kFailure) ||
+              (status1 == CdmFile::Status::kFailure &&
+               status2 == CdmFile::Status::kSuccess));
+}
+
 }  // namespace content
diff --git a/content/browser/permissions/permission_service_context.cc b/content/browser/permissions/permission_service_context.cc
index ed539c4..921cc41 100644
--- a/content/browser/permissions/permission_service_context.cc
+++ b/content/browser/permissions/permission_service_context.cc
@@ -81,8 +81,8 @@
 }
 
 void PermissionServiceContext::CreateServiceForWorker(
-    mojo::PendingReceiver<blink::mojom::PermissionService> receiver,
-    const url::Origin& origin) {
+    const url::Origin& origin,
+    mojo::PendingReceiver<blink::mojom::PermissionService> receiver) {
   services_.Add(std::make_unique<PermissionServiceImpl>(this, origin),
                 std::move(receiver));
 }
diff --git a/content/browser/permissions/permission_service_context.h b/content/browser/permissions/permission_service_context.h
index 4b6d362..c54f763f 100644
--- a/content/browser/permissions/permission_service_context.h
+++ b/content/browser/permissions/permission_service_context.h
@@ -37,8 +37,8 @@
   void CreateService(
       mojo::PendingReceiver<blink::mojom::PermissionService> receiver);
   void CreateServiceForWorker(
-      mojo::PendingReceiver<blink::mojom::PermissionService> receiver,
-      const url::Origin& origin);
+      const url::Origin& origin,
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver);
 
   void CreateSubscription(
       PermissionType permission_type,
diff --git a/content/browser/pointer_lock_browsertest.cc b/content/browser/pointer_lock_browsertest.cc
index 63181d2..e576b64 100644
--- a/content/browser/pointer_lock_browsertest.cc
+++ b/content/browser/pointer_lock_browsertest.cc
@@ -45,6 +45,13 @@
 };
 
 #ifdef USE_AURA
+class ScopedEnableUnadjustedMouseEventsForTesting
+    : public aura::ScopedEnableUnadjustedMouseEvents {
+ public:
+  explicit ScopedEnableUnadjustedMouseEventsForTesting() {}
+  ~ScopedEnableUnadjustedMouseEventsForTesting() override {}
+};
+
 class MockPointerLockRenderWidgetHostView : public RenderWidgetHostViewAura {
  public:
   MockPointerLockRenderWidgetHostView(RenderWidgetHost* host,
@@ -59,14 +66,16 @@
   bool LockMouse(bool request_unadjusted_movement) override {
     event_handler()->mouse_locked_ = true;
     event_handler()->mouse_locked_unadjusted_movement_ =
-        request_unadjusted_movement;
+        request_unadjusted_movement
+            ? std::make_unique<ScopedEnableUnadjustedMouseEventsForTesting>()
+            : nullptr;
     return true;
   }
 
   void UnlockMouse() override {
     host_->LostMouseLock();
     event_handler()->mouse_locked_ = false;
-    event_handler()->mouse_locked_unadjusted_movement_ = false;
+    event_handler()->mouse_locked_unadjusted_movement_.reset();
   }
 
   bool IsMouseLocked() override { return event_handler()->mouse_locked(); }
diff --git a/content/browser/renderer_host/direct_manipulation_win_unittest.cc b/content/browser/renderer_host/direct_manipulation_win_unittest.cc
index b117d14..71f1a2e8 100644
--- a/content/browser/renderer_host/direct_manipulation_win_unittest.cc
+++ b/content/browser/renderer_host/direct_manipulation_win_unittest.cc
@@ -350,6 +350,13 @@
     return S_OK;
   }
 
+  LRESULT HandleInputMessage(unsigned int message,
+                             WPARAM w_param,
+                             LPARAM l_param,
+                             bool* handled) override {
+    return S_OK;
+  }
+
   LRESULT HandleScrollMessage(unsigned int message,
                               WPARAM w_param,
                               LPARAM l_param,
diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.cc b/content/browser/renderer_host/legacy_render_widget_host_win.cc
index f8b0608..e7d7fbd 100644
--- a/content/browser/renderer_host/legacy_render_widget_host_win.cc
+++ b/content/browser/renderer_host/legacy_render_widget_host_win.cc
@@ -395,6 +395,19 @@
   return ret;
 }
 
+LRESULT LegacyRenderWidgetHostHWND::OnInput(UINT message,
+                                            WPARAM w_param,
+                                            LPARAM l_param) {
+  LRESULT ret = 0;
+  if (GetWindowEventTarget(GetParent())) {
+    bool msg_handled = false;
+    ret = GetWindowEventTarget(GetParent())
+              ->HandleInputMessage(message, w_param, l_param, &msg_handled);
+    SetMsgHandled(msg_handled);
+  }
+  return ret;
+}
+
 LRESULT LegacyRenderWidgetHostHWND::OnScroll(UINT message,
                                              WPARAM w_param,
                                              LPARAM l_param) {
diff --git a/content/browser/renderer_host/legacy_render_widget_host_win.h b/content/browser/renderer_host/legacy_render_widget_host_win.h
index df6f24c..0bffdc0 100644
--- a/content/browser/renderer_host/legacy_render_widget_host_win.h
+++ b/content/browser/renderer_host/legacy_render_widget_host_win.h
@@ -83,6 +83,7 @@
     MESSAGE_HANDLER_EX(WM_PAINT, OnPaint)
     MESSAGE_HANDLER_EX(WM_NCPAINT, OnNCPaint)
     MESSAGE_HANDLER_EX(WM_ERASEBKGND, OnEraseBkGnd)
+    MESSAGE_HANDLER_EX(WM_INPUT, OnInput)
     MESSAGE_RANGE_HANDLER(WM_MOUSEFIRST, WM_MOUSELAST, OnMouseRange)
     MESSAGE_HANDLER_EX(WM_MOUSELEAVE, OnMouseLeave)
     MESSAGE_HANDLER_EX(WM_MOUSEACTIVATE, OnMouseActivate)
@@ -146,6 +147,7 @@
 
   LRESULT OnEraseBkGnd(UINT message, WPARAM w_param, LPARAM l_param);
   LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param);
+  LRESULT OnInput(UINT message, WPARAM w_param, LPARAM l_param);
   LRESULT OnKeyboardRange(UINT message, WPARAM w_param, LPARAM l_param,
                           BOOL& handled);
   LRESULT OnMouseLeave(UINT message, WPARAM w_param, LPARAM l_param);
diff --git a/content/browser/renderer_host/render_process_host_impl.cc b/content/browser/renderer_host/render_process_host_impl.cc
index 694b2a4..907ee96 100644
--- a/content/browser/renderer_host/render_process_host_impl.cc
+++ b/content/browser/renderer_host/render_process_host_impl.cc
@@ -1920,6 +1920,14 @@
                                                            std::move(receiver));
 }
 
+void RenderProcessHostImpl::CreatePermissionService(
+    const url::Origin& origin,
+    mojo::PendingReceiver<blink::mojom::PermissionService> receiver) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  permission_service_context_->CreateServiceForWorker(origin,
+                                                      std::move(receiver));
+}
+
 void RenderProcessHostImpl::CancelProcessShutdownDelayForUnload() {
   if (IsKeepAliveRefCountDisabled())
     return;
diff --git a/content/browser/renderer_host/render_process_host_impl.h b/content/browser/renderer_host/render_process_host_impl.h
index 01747d0..b7304cf 100644
--- a/content/browser/renderer_host/render_process_host_impl.h
+++ b/content/browser/renderer_host/render_process_host_impl.h
@@ -512,6 +512,13 @@
       const url::Origin& origin,
       mojo::PendingReceiver<blink::mojom::LockManager> receiver) override;
 
+  // Binds |receiver| to the PermissionService instance owned by
+  // |permission_service_context_|, and is used by workers via
+  // BrowserInterfaceBroker.
+  void CreatePermissionService(
+      const url::Origin& origin,
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver) override;
+
   // Adds a CORB (Cross-Origin Read Blocking) exception for |process_id|.  The
   // exception will be removed when the corresponding RenderProcessHostImpl is
   // destroyed (see |cleanup_corb_exception_for_plugin_upon_destruction_|).
diff --git a/content/browser/renderer_host/render_widget_host_view_aura.cc b/content/browser/renderer_host/render_widget_host_view_aura.cc
index ec0a205..b0505fe 100644
--- a/content/browser/renderer_host/render_widget_host_view_aura.cc
+++ b/content/browser/renderer_host/render_widget_host_view_aura.cc
@@ -1733,7 +1733,8 @@
 void RenderWidgetHostViewAura::OnMouseEvent(ui::MouseEvent* event) {
 #if defined(OS_WIN)
   if (event->type() == ui::ET_MOUSE_MOVED) {
-    if (event->location() == last_mouse_move_location_) {
+    if (event->location() == last_mouse_move_location_ &&
+        event->movement().IsZero()) {
       event->SetHandled();
       return;
     }
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.cc b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
index caaec4a..7f5763a 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.cc
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.cc
@@ -26,6 +26,7 @@
 #include "ui/aura/scoped_keyboard_hook.h"
 #include "ui/aura/window.h"
 #include "ui/aura/window_delegate.h"
+#include "ui/aura/window_tree_host.h"
 #include "ui/base/ime/text_input_client.h"
 #include "ui/events/blink/blink_event_util.h"
 #include "ui/events/blink/web_input_event.h"
@@ -116,7 +117,6 @@
     Delegate* delegate)
     : accept_return_character_(false),
       mouse_locked_(false),
-      mouse_locked_unadjusted_movement_(false),
       pinch_zoom_enabled_(content::IsPinchToZoomEnabled()),
       set_focus_on_mouse_down_or_key_event_(false),
       enable_consolidated_movement_(
@@ -132,7 +132,9 @@
                           ? std::make_unique<HitTestDebugKeyEventObserver>(host)
                           : nullptr) {}
 
-RenderWidgetHostViewEventHandler::~RenderWidgetHostViewEventHandler() {}
+RenderWidgetHostViewEventHandler::~RenderWidgetHostViewEventHandler() {
+  DCHECK(!mouse_locked_);
+}
 
 void RenderWidgetHostViewEventHandler::SetPopupChild(
     RenderWidgetHostViewBase* popup_child_host_view,
@@ -169,12 +171,15 @@
   if (mouse_locked_)
     return true;
 
-  if (request_unadjusted_movement) {
-    NOTIMPLEMENTED();
-    return false;
+  if (request_unadjusted_movement && window_->GetHost()) {
+    mouse_locked_unadjusted_movement_ =
+        window_->GetHost()->RequestUnadjustedMovement();
+    if (!mouse_locked_unadjusted_movement_)
+      return false;
   }
 
   mouse_locked_ = true;
+
 #if !defined(OS_WIN)
   window_->SetCapture();
 #else
@@ -202,7 +207,7 @@
     return;
 
   mouse_locked_ = false;
-  mouse_locked_unadjusted_movement_ = false;
+  mouse_locked_unadjusted_movement_.reset();
 
   if (window_->HasCapture())
     window_->ReleaseCapture();
@@ -802,10 +807,12 @@
     // movement_x/y are integer. In order not to lose fractional part, we need
     // to keep the movement calculation as "floor(cur_pos) - floor(last_pos)".
     // Remove the floor here when movement_x/y is changed to double.
-    event->movement_x = gfx::ToFlooredInt(event->PositionInScreen().x) -
-                        gfx::ToFlooredInt(global_mouse_position_.x());
-    event->movement_y = gfx::ToFlooredInt(event->PositionInScreen().y) -
-                        gfx::ToFlooredInt(global_mouse_position_.y());
+    if (!(ui_mouse_event.flags() & ui::EF_UNADJUSTED_MOUSE)) {
+      event->movement_x = gfx::ToFlooredInt(event->PositionInScreen().x) -
+                          gfx::ToFlooredInt(global_mouse_position_.x());
+      event->movement_y = gfx::ToFlooredInt(event->PositionInScreen().y) -
+                          gfx::ToFlooredInt(global_mouse_position_.y());
+    }
 
     global_mouse_position_.SetPoint(event->PositionInScreen().x,
                                     event->PositionInScreen().y);
@@ -913,6 +920,11 @@
 
 bool RenderWidgetHostViewEventHandler::ShouldMoveToCenter(
     gfx::PointF mouse_screen_position) {
+  // Do not need to move to center in unadjusted movement mode as
+  // the movement value are directly from OS.
+  if (mouse_locked_unadjusted_movement_)
+    return false;
+
   gfx::Rect rect = window_->bounds();
   rect = delegate_->ConvertRectToScreen(rect);
   float border_x = rect.width() * kMouseLockBorderPercentage / 100.0;
diff --git a/content/browser/renderer_host/render_widget_host_view_event_handler.h b/content/browser/renderer_host/render_widget_host_view_event_handler.h
index 56dc143c..62ea0ca 100644
--- a/content/browser/renderer_host/render_widget_host_view_event_handler.h
+++ b/content/browser/renderer_host/render_widget_host_view_event_handler.h
@@ -13,6 +13,7 @@
 #include "content/browser/renderer_host/input/mouse_wheel_phase_handler.h"
 #include "content/common/content_export.h"
 #include "content/public/browser/native_web_keyboard_event.h"
+#include "ui/aura/scoped_enable_unadjusted_mouse_events.h"
 #include "ui/aura/scoped_keyboard_hook.h"
 #include "ui/aura/window_tracker.h"
 #include "ui/events/event_handler.h"
@@ -259,9 +260,12 @@
   // locked.
   bool mouse_locked_;
 
-  // True if mouse is locked and we are reporting the unadjusted movement
-  // value (without mouse accelerations) from OS, i.e. WM_INPUT on Windows.
-  bool mouse_locked_unadjusted_movement_;
+  // Use to track whether pointer lock is in the unadjusted movement mode and
+  // mousemoves are using unadjusted movement value (without mouse
+  // accelerations) from OS, i.e. WM_INPUT on Windows. Deactivates raw input
+  // mode when destroyed.
+  std::unique_ptr<aura::ScopedEnableUnadjustedMouseEvents>
+      mouse_locked_unadjusted_movement_;
 
   // Whether pinch-to-zoom should be enabled and pinch events forwarded to the
   // renderer.
diff --git a/content/browser/renderer_interface_binders.cc b/content/browser/renderer_interface_binders.cc
index 7a834a2..5f8296c 100644
--- a/content/browser/renderer_interface_binders.cc
+++ b/content/browser/renderer_interface_binders.cc
@@ -217,13 +217,6 @@
               std::move(receiver));
         }));
   }
-  parameterized_binder_registry_.AddInterface(base::Bind(
-      [](mojo::PendingReceiver<blink::mojom::PermissionService> receiver,
-         RenderProcessHost* host, const url::Origin& origin) {
-        static_cast<RenderProcessHostImpl*>(host)
-            ->permission_service_context()
-            .CreateServiceForWorker(std::move(receiver), origin);
-      }));
 
   parameterized_binder_registry_.AddInterface(base::BindRepeating(
       [](blink::mojom::NotificationServiceRequest request,
diff --git a/content/browser/service_worker/service_worker_provider_host.cc b/content/browser/service_worker/service_worker_provider_host.cc
index 48e4374..0de4c111 100644
--- a/content/browser/service_worker/service_worker_provider_host.cc
+++ b/content/browser/service_worker/service_worker_provider_host.cc
@@ -99,6 +99,18 @@
   process->CreateLockManager(origin, std::move(receiver));
 }
 
+void CreatePermissionServiceImpl(
+    const url::Origin& origin,
+    int process_id,
+    mojo::PendingReceiver<blink::mojom::PermissionService> receiver) {
+  DCHECK_CURRENTLY_ON(BrowserThread::UI);
+  auto* process = RenderProcessHost::FromID(process_id);
+  if (!process)
+    return;
+
+  process->CreatePermissionService(origin, std::move(receiver));
+}
+
 ServiceWorkerMetrics::EventType PurposeToEventType(
     blink::mojom::ControllerServiceWorkerPurpose purpose) {
   switch (purpose) {
@@ -1390,6 +1402,17 @@
                      render_process_id_, std::move(receiver)));
 }
 
+void ServiceWorkerProviderHost::CreatePermissionService(
+    mojo::PendingReceiver<blink::mojom::PermissionService> receiver) {
+  DCHECK_CURRENTLY_ON(ServiceWorkerContext::GetCoreThreadId());
+  DCHECK(IsProviderForServiceWorker());
+  RunOrPostTaskOnThread(
+      FROM_HERE, BrowserThread::UI,
+      base::BindOnce(&CreatePermissionServiceImpl,
+                     running_hosted_version_->script_origin(),
+                     render_process_id_, std::move(receiver)));
+}
+
 void ServiceWorkerProviderHost::SetExecutionReady() {
   DCHECK(!is_execution_ready());
   TransitionToClientPhase(ClientPhase::kExecutionReady);
diff --git a/content/browser/service_worker/service_worker_provider_host.h b/content/browser/service_worker/service_worker_provider_host.h
index d4f4d49..b5c40976 100644
--- a/content/browser/service_worker/service_worker_provider_host.h
+++ b/content/browser/service_worker/service_worker_provider_host.h
@@ -36,6 +36,7 @@
 #include "services/network/public/mojom/fetch_api.mojom.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom.h"
 #include "third_party/blink/public/mojom/locks/lock_manager.mojom-forward.h"
+#include "third_party/blink/public/mojom/permissions/permission.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_container.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_provider.mojom.h"
 #include "third_party/blink/public/mojom/service_worker/service_worker_provider_type.mojom.h"
@@ -413,6 +414,11 @@
   void CreateLockManager(
       mojo::PendingReceiver<blink::mojom::LockManager> receiver);
 
+  // For service worker execution contexts. Forwards |receiver| to the process
+  // host on the UI thread.
+  void CreatePermissionService(
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver);
+
  private:
   // For service worker clients. The flow is kInitial -> kResponseCommitted ->
   // kExecutionReady.
diff --git a/content/browser/storage_partition_impl.cc b/content/browser/storage_partition_impl.cc
index bf608031..2a13cec 100644
--- a/content/browser/storage_partition_impl.cc
+++ b/content/browser/storage_partition_impl.cc
@@ -544,15 +544,10 @@
     auth_challenge_responder_.set_disconnect_handler(base::BindOnce(
         &LoginHandlerDelegate::OnRequestCancelled, base::Unretained(this)));
 
-    auto continue_after_inteceptor_io =
-        base::BindOnce(&LoginHandlerDelegate::ContinueAfterInterceptorIO,
-                       weak_factory_.GetWeakPtr());
-    base::PostTask(
-        FROM_HERE, {BrowserThread::IO},
-        base::BindOnce(&DevToolsURLLoaderInterceptor::HandleAuthRequest,
-                       request_id_.child_id, routing_id_,
-                       request_id_.request_id, auth_info_,
-                       std::move(continue_after_inteceptor_io)));
+    DevToolsURLLoaderInterceptor::HandleAuthRequest(
+        request_id_.child_id, routing_id_, request_id_.request_id, auth_info_,
+        base::BindOnce(&LoginHandlerDelegate::ContinueAfterInterceptor,
+                       weak_factory_.GetWeakPtr()));
   }
 
  private:
@@ -563,18 +558,7 @@
     delete this;
   }
 
-  static void ContinueAfterInterceptorIO(
-      base::WeakPtr<LoginHandlerDelegate> self_weak,
-      bool use_fallback,
-      const base::Optional<net::AuthCredentials>& auth_credentials) {
-    DCHECK_CURRENTLY_ON(BrowserThread::IO);
-    base::PostTask(
-        FROM_HERE, {BrowserThread::UI},
-        base::BindOnce(&LoginHandlerDelegate::ContinueAfterInterceptorUI,
-                       std::move(self_weak), use_fallback, auth_credentials));
-  }
-
-  void ContinueAfterInterceptorUI(
+  void ContinueAfterInterceptor(
       bool use_fallback,
       const base::Optional<net::AuthCredentials>& auth_credentials) {
     DCHECK_CURRENTLY_ON(BrowserThread::UI);
diff --git a/content/browser/web_contents/web_contents_impl.cc b/content/browser/web_contents/web_contents_impl.cc
index f408405..156b2e14 100644
--- a/content/browser/web_contents/web_contents_impl.cc
+++ b/content/browser/web_contents/web_contents_impl.cc
@@ -901,8 +901,6 @@
                         OnDomOperationResponse)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DidChangeThemeColor,
                         OnThemeColorChanged)
-    IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishDocumentLoad,
-                        OnDocumentLoadedInFrame)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DidFinishLoad, OnDidFinishLoad)
     IPC_MESSAGE_HANDLER(FrameHostMsg_DidLoadResourceFromMemoryCache,
                         OnDidLoadResourceFromMemoryCache)
@@ -4819,9 +4817,9 @@
       entry->GetURL().GetOrigin());
 }
 
-void WebContentsImpl::OnDocumentLoadedInFrame(RenderFrameHostImpl* source) {
+void WebContentsImpl::DOMContentLoaded(RenderFrameHost* render_frame_host) {
   for (auto& observer : observers_)
-    observer.DocumentLoadedInFrame(source);
+    observer.DocumentLoadedInFrame(render_frame_host);
 }
 
 void WebContentsImpl::OnDidFinishLoad(RenderFrameHostImpl* source,
diff --git a/content/browser/web_contents/web_contents_impl.h b/content/browser/web_contents/web_contents_impl.h
index 5d08a418c..d260705 100644
--- a/content/browser/web_contents/web_contents_impl.h
+++ b/content/browser/web_contents/web_contents_impl.h
@@ -545,6 +545,7 @@
                              bool is_display_none) override;
   void FrameSizeChanged(RenderFrameHost* render_frame_host,
                         const gfx::Size& frame_size) override;
+  void DOMContentLoaded(RenderFrameHost* render_frame_host) override;
   void DocumentOnLoadCompleted(RenderFrameHost* render_frame_host) override;
   void UpdateStateForFrame(RenderFrameHost* render_frame_host,
                            const PageState& page_state) override;
@@ -1292,7 +1293,6 @@
                                const GURL& target_url);
   void OnDidDisplayContentWithCertificateErrors(RenderFrameHostImpl* source);
   void OnDidRunContentWithCertificateErrors(RenderFrameHostImpl* source);
-  void OnDocumentLoadedInFrame(RenderFrameHostImpl* source);
   void OnDidFinishLoad(RenderFrameHostImpl* source, const GURL& url);
   void OnGoToEntryAtOffset(RenderFrameHostImpl* source,
                            int offset,
diff --git a/content/child/blink_platform_impl.cc b/content/child/blink_platform_impl.cc
index 8616e38..e9667984 100644
--- a/content/child/blink_platform_impl.cc
+++ b/content/child/blink_platform_impl.cc
@@ -90,8 +90,6 @@
 
 int ToMessageID(int resource_id) {
   switch (resource_id) {
-    case WebLocalizedString::kAXAMPMFieldText:
-      return IDS_AX_AM_PM_FIELD_TEXT;
     case WebLocalizedString::kAXDayOfMonthFieldText:
       return IDS_AX_DAY_OF_MONTH_FIELD_TEXT;
     case WebLocalizedString::kAXHourFieldText:
@@ -194,30 +192,10 @@
       return IDS_FORM_OTHER_MONTH_LABEL;
     case WebLocalizedString::kOtherWeekLabel:
       return IDS_FORM_OTHER_WEEK_LABEL;
-    case WebLocalizedString::kOverflowMenuCaptions:
-      return IDS_MEDIA_OVERFLOW_MENU_CLOSED_CAPTIONS;
     case WebLocalizedString::kOverflowMenuCaptionsSubmenuTitle:
       return IDS_MEDIA_OVERFLOW_MENU_CLOSED_CAPTIONS_SUBMENU_TITLE;
-    case WebLocalizedString::kOverflowMenuCast:
-      return IDS_MEDIA_OVERFLOW_MENU_CAST;
-    case WebLocalizedString::kOverflowMenuEnterFullscreen:
-      return IDS_MEDIA_OVERFLOW_MENU_ENTER_FULLSCREEN;
-    case WebLocalizedString::kOverflowMenuExitFullscreen:
-      return IDS_MEDIA_OVERFLOW_MENU_EXIT_FULLSCREEN;
-    case WebLocalizedString::kOverflowMenuMute:
-      return IDS_MEDIA_OVERFLOW_MENU_MUTE;
     case WebLocalizedString::kOverflowMenuUnmute:
       return IDS_MEDIA_OVERFLOW_MENU_UNMUTE;
-    case WebLocalizedString::kOverflowMenuPlay:
-      return IDS_MEDIA_OVERFLOW_MENU_PLAY;
-    case WebLocalizedString::kOverflowMenuPause:
-      return IDS_MEDIA_OVERFLOW_MENU_PAUSE;
-    case WebLocalizedString::kOverflowMenuDownload:
-      return IDS_MEDIA_OVERFLOW_MENU_DOWNLOAD;
-    case WebLocalizedString::kOverflowMenuEnterPictureInPicture:
-      return IDS_MEDIA_OVERFLOW_MENU_ENTER_PICTURE_IN_PICTURE;
-    case WebLocalizedString::kOverflowMenuExitPictureInPicture:
-      return IDS_MEDIA_OVERFLOW_MENU_EXIT_PICTURE_IN_PICTURE;
     case WebLocalizedString::kPictureInPictureInterstitialText:
       return IDS_MEDIA_PICTURE_IN_PICTURE_INTERSTITIAL_TEXT;
     case WebLocalizedString::kPlaceholderForDayOfMonthField:
diff --git a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
index c079513b..f26d1304 100644
--- a/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
+++ b/content/public/android/java/src/org/chromium/content/browser/selection/SelectionPopupControllerImpl.java
@@ -37,6 +37,7 @@
 
 import org.chromium.base.BuildInfo;
 import org.chromium.base.Log;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.UserData;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.annotations.CalledByNative;
@@ -851,9 +852,8 @@
             return;
         }
 
-        PackageManager packageManager = mContext.getPackageManager();
         List<ResolveInfo> supportedActivities =
-                packageManager.queryIntentActivities(createProcessTextIntent(), 0);
+                PackageManagerUtils.queryIntentActivities(createProcessTextIntent(), 0);
         for (int i = 0; i < supportedActivities.size(); i++) {
             ResolveInfo resolveInfo = supportedActivities.get(i);
             CharSequence label = resolveInfo.loadLabel(mContext.getPackageManager());
@@ -1486,10 +1486,8 @@
     private boolean isShareAvailable() {
         Intent intent = new Intent(Intent.ACTION_SEND);
         intent.setType("text/plain");
-        return mContext.getPackageManager()
-                       .queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
-                       .size()
-                > 0;
+        return !PackageManagerUtils.queryIntentActivities(intent, PackageManager.MATCH_DEFAULT_ONLY)
+                        .isEmpty();
     }
 
     // The callback class that delivers the result from a SmartSelectionClient.
diff --git a/content/public/app/content_browser_manifest.cc b/content/public/app/content_browser_manifest.cc
index d3e7bf7..568e591 100644
--- a/content/public/app/content_browser_manifest.cc
+++ b/content/public/app/content_browser_manifest.cc
@@ -169,7 +169,6 @@
                   "blink.mojom.CacheStorage", "blink.mojom.IDBFactory",
                   "blink.mojom.NativeFileSystemManager",
                   "blink.mojom.NotificationService",
-                  "blink.mojom.PermissionService",
                   "blink.mojom.QuotaDispatcherHost",
                   "blink.mojom.WebSocketConnector",
                   "media.mojom.VideoDecodePerfHistory",
@@ -185,7 +184,6 @@
                   "blink.mojom.IDBFactory",
                   "blink.mojom.NativeFileSystemManager",
                   "blink.mojom.NotificationService",
-                  "blink.mojom.PermissionService",
                   "blink.mojom.QuotaDispatcherHost",
                   "blink.mojom.SerialService",
                   "blink.mojom.WebUsbService", "blink.mojom.SmsReceiver",
@@ -202,7 +200,6 @@
                   "blink.mojom.IDBFactory",
                   "blink.mojom.NativeFileSystemManager",
                   "blink.mojom.NotificationService",
-                  "blink.mojom.PermissionService",
                   "blink.mojom.QuotaDispatcherHost",
                   "media.mojom.VideoDecodePerfHistory",
                   "network.mojom.RestrictedCookieManager",
@@ -231,7 +228,6 @@
                   "blink.mojom.MediaSessionService",
                   "blink.mojom.NativeFileSystemManager",
                   "blink.mojom.NotificationService",
-                  "blink.mojom.PermissionService",
                   "blink.mojom.PictureInPictureService",
                   "blink.mojom.Portal",
                   "blink.mojom.PrefetchURLLoaderService",
diff --git a/content/public/browser/render_process_host.h b/content/public/browser/render_process_host.h
index d51832b..56eaf82 100644
--- a/content/public/browser/render_process_host.h
+++ b/content/public/browser/render_process_host.h
@@ -35,6 +35,7 @@
 #include "third_party/blink/public/mojom/filesystem/file_system.mojom-forward.h"
 #include "third_party/blink/public/mojom/indexeddb/indexeddb.mojom-forward.h"
 #include "third_party/blink/public/mojom/locks/lock_manager.mojom-forward.h"
+#include "third_party/blink/public/mojom/permissions/permission.mojom.h"
 #include "ui/gfx/native_widget_types.h"
 
 #if defined(OS_ANDROID)
@@ -504,6 +505,13 @@
       const url::Origin& origin,
       mojo::PendingReceiver<blink::mojom::LockManager> receiver) = 0;
 
+  // Binds |receiver| to an instance of PermissionService. This is for internal
+  // use only, and is only exposed here to support MockRenderProcessHost usage
+  // in tests.
+  virtual void CreatePermissionService(
+      const url::Origin& origin,
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver) = 0;
+
   // Returns the current number of active views in this process.  Excludes
   // any RenderViewHosts that are swapped out.
   size_t GetActiveViewCount();
diff --git a/content/public/browser/web_contents_observer.h b/content/public/browser/web_contents_observer.h
index 40290cbd..e7d24013 100644
--- a/content/public/browser/web_contents_observer.h
+++ b/content/public/browser/web_contents_observer.h
@@ -234,6 +234,7 @@
   // This method is invoked when the document in the given frame finished
   // loading. At this point, scripts marked as defer were executed, and
   // content scripts marked "document_end" get injected into the frame.
+  // TODO(kouhei): rename this to DOMContentLoaded().
   virtual void DocumentLoadedInFrame(RenderFrameHost* render_frame_host) {}
 
   // This method is invoked when the load is done, i.e. the spinner of the tab
diff --git a/content/public/common/url_utils_unittest.cc b/content/public/common/url_utils_unittest.cc
index 3921c6c..f097405 100644
--- a/content/public/common/url_utils_unittest.cc
+++ b/content/public/common/url_utils_unittest.cc
@@ -41,8 +41,13 @@
   EXPECT_FALSE(IsSafeRedirectTarget(GURL(), CreateValidURL("about:blank")));
   EXPECT_FALSE(IsSafeRedirectTarget(
       GURL(), CreateValidURL("filesystem:http://foo.com/bar")));
+#if !defined(CHROMECAST_BUILD)
   EXPECT_FALSE(
       IsSafeRedirectTarget(GURL(), CreateValidURL("data:text/plain,foo")));
+#else
+  EXPECT_TRUE(
+      IsSafeRedirectTarget(GURL(), CreateValidURL("data:text/plain,foo")));
+#endif
   EXPECT_FALSE(
       IsSafeRedirectTarget(GURL(), CreateValidURL("blob:https://foo.com/bar")));
 #if defined(OS_ANDROID)
diff --git a/content/public/renderer/content_renderer_client.cc b/content/public/renderer/content_renderer_client.cc
index 98b215e..ed275b4a 100644
--- a/content/public/renderer/content_renderer_client.cc
+++ b/content/public/renderer/content_renderer_client.cc
@@ -227,10 +227,6 @@
   return true;
 }
 
-bool ContentRendererClient::SuppressLegacyTLSVersionConsoleMessage() {
-  return false;
-}
-
 std::unique_ptr<URLLoaderThrottleProvider>
 ContentRendererClient::CreateURLLoaderThrottleProvider(
     URLLoaderThrottleProviderType provider_type) {
diff --git a/content/public/renderer/content_renderer_client.h b/content/public/renderer/content_renderer_client.h
index 7ae6603..902bd02 100644
--- a/content/public/renderer/content_renderer_client.h
+++ b/content/public/renderer/content_renderer_client.h
@@ -391,12 +391,6 @@
   // suspended after a period of inactivity.
   virtual bool IsIdleMediaSuspendEnabled();
 
-  // Returns true to suppress the warning for deprecated TLS versions.
-  //
-  // This is a workaround for an outdated test server used by Blink tests on
-  // macOS. See https://crbug.com/936515.
-  virtual bool SuppressLegacyTLSVersionConsoleMessage();
-
   // Allows the embedder to return a (possibly null) URLLoaderThrottleProvider
   // for a frame or worker. For frames this is called on the main thread, and
   // for workers it's called on the worker thread.
diff --git a/content/public/test/mock_render_process_host.h b/content/public/test/mock_render_process_host.h
index 10c42ed..1b6e80f4 100644
--- a/content/public/test/mock_render_process_host.h
+++ b/content/public/test/mock_render_process_host.h
@@ -181,6 +181,10 @@
   void CreateLockManager(
       const url::Origin& origin,
       mojo::PendingReceiver<blink::mojom::LockManager> receiver) override {}
+  void CreatePermissionService(
+      const url::Origin& origin,
+      mojo::PendingReceiver<blink::mojom::PermissionService> receiver)
+      override {}
   void CleanupCorbExceptionForPluginUponDestruction() override;
 
   // IPC::Sender via RenderProcessHost.
diff --git a/content/renderer/media/media_permission_dispatcher.cc b/content/renderer/media/media_permission_dispatcher.cc
index 44bc50b6..cc75adba 100644
--- a/content/renderer/media/media_permission_dispatcher.cc
+++ b/content/renderer/media/media_permission_dispatcher.cc
@@ -130,7 +130,7 @@
 blink::mojom::PermissionService*
 MediaPermissionDispatcher::GetPermissionService() {
   if (!permission_service_) {
-    render_frame_->GetRemoteInterfaces()->GetInterface(
+    render_frame_->GetBrowserInterfaceBroker()->GetInterface(
         permission_service_.BindNewPipeAndPassReceiver());
     permission_service_.set_disconnect_handler(base::BindOnce(
         &MediaPermissionDispatcher::OnConnectionError, base::Unretained(this)));
diff --git a/content/renderer/render_frame_impl.cc b/content/renderer/render_frame_impl.cc
index 3b5b7d1..632f4e2 100644
--- a/content/renderer/render_frame_impl.cc
+++ b/content/renderer/render_frame_impl.cc
@@ -318,10 +318,6 @@
 const PreviewsState kDisabledPreviewsBits =
     PREVIEWS_OFF | PREVIEWS_NO_TRANSFORM;
 
-// Print up to |kMaxSecurityWarningMessages| console messages per frame about
-// certificates or TLS versions that will be distrusted in future.
-const uint32_t kMaxSecurityWarningMessages = 10;
-
 typedef std::map<int, RenderFrameImpl*> RoutingIDFrameMap;
 static base::LazyInstance<RoutingIDFrameMap>::DestructorAtExit
     g_routing_id_frame_map = LAZY_INSTANCE_INITIALIZER;
@@ -4887,9 +4883,6 @@
 
   // Check whether we have new encoding name.
   UpdateEncoding(frame_, frame_->View()->PageEncoding().Utf8());
-
-  // Reset warning state that prevents log spam.
-  tls_version_warning_origins_.clear();
 }
 
 void RenderFrameImpl::DidCreateNewDocument() {
@@ -5537,60 +5530,6 @@
   Send(new FrameHostMsg_DidRunContentWithCertificateErrors(routing_id_));
 }
 
-void RenderFrameImpl::ReportLegacyTLSVersion(const blink::WebURL& url) {
-  url::Origin origin = url::Origin::Create(GURL(url));
-  // To prevent log spam, only log the message once per origin.
-  if (base::Contains(tls_version_warning_origins_, origin))
-    return;
-
-  size_t num_warnings = tls_version_warning_origins_.size();
-  // After |kMaxSecurityWarningMessages| warnings, stop printing messages to the
-  // console. At exactly |kMaxSecurityWarningMessages| warnings, print a message
-  // that additional resources on the page use legacy certificates without
-  // specifying which exact resources. Before |kMaxSecurityWarningMessages|
-  // messages, print the exact resource URL in the message to help the developer
-  // pinpoint the problematic resources.
-  if (num_warnings > kMaxSecurityWarningMessages)
-    return;
-
-  // Allow the embedded to suppress these warnings. This is a workaround for an
-  // outdated test server used by Blink tests on macOS. See
-  // https://crbug.com/936515.
-  if (GetContentClient()
-          ->renderer()
-          ->SuppressLegacyTLSVersionConsoleMessage()) {
-    return;
-  }
-
-  std::string console_message;
-  if (num_warnings == kMaxSecurityWarningMessages) {
-    console_message =
-        "Additional resources on this page were loaded with TLS 1.0 or TLS "
-        "1.1, which are deprecated and will be disabled in the future. Once "
-        "disabled, users will be prevented from loading these resources. "
-        "Servers should enable TLS 1.2 or later. See "
-        "https://www.chromestatus.com/feature/5654791610957824 for more "
-        "information.";
-  } else {
-    console_message = base::StringPrintf(
-        "The connection used to load resources from %s used TLS 1.0 or TLS "
-        "1.1, which are deprecated and will be disabled in the future. Once "
-        "disabled, users will be prevented from loading these resources. The "
-        "server should enable TLS 1.2 or later. See "
-        "https://www.chromestatus.com/feature/5654791610957824 for more "
-        "information.",
-        origin.Serialize().c_str());
-  }
-
-  tls_version_warning_origins_.insert(origin);
-  // To avoid spamming the console, use verbose message level for subframe
-  // resources, and only use the warning level for main-frame resources.
-  AddMessageToConsole(frame_->Parent()
-                          ? blink::mojom::ConsoleMessageLevel::kVerbose
-                          : blink::mojom::ConsoleMessageLevel::kWarning,
-                      console_message);
-}
-
 void RenderFrameImpl::DidChangePerformanceTiming() {
   for (auto& observer : observers_)
     observer.DidChangePerformanceTiming();
diff --git a/content/renderer/render_frame_impl.h b/content/renderer/render_frame_impl.h
index cf3cac5..68166c1 100644
--- a/content/renderer/render_frame_impl.h
+++ b/content/renderer/render_frame_impl.h
@@ -807,7 +807,6 @@
                              const blink::WebURL& target) override;
   void DidDisplayContentWithCertificateErrors() override;
   void DidRunContentWithCertificateErrors() override;
-  void ReportLegacyTLSVersion(const blink::WebURL& url) override;
   void DidChangePerformanceTiming() override;
   void DidChangeCpuTiming(base::TimeDelta time) override;
   void DidChangeActiveSchedulerTrackedFeatures(uint64_t features_mask) override;
@@ -1761,10 +1760,6 @@
   mojo::Remote<blink::mojom::ClipboardHost> clipboard_host_;
 #endif
 
-  // The origins for which a legacy TLS version warning has been printed. The
-  // size of this set is capped, after which no more warnings are printed.
-  std::set<url::Origin> tls_version_warning_origins_;
-
   std::unique_ptr<WebSocketHandshakeThrottleProvider>
       websocket_handshake_throttle_provider_;
 
diff --git a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
index 15d7a09..4571f31 100644
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.cc
@@ -64,7 +64,8 @@
                "EmbeddedWorkerInstanceClientImpl::StartWorker");
   auto start_timing = blink::mojom::EmbeddedWorkerStartTiming::New();
   start_timing->start_worker_received_time = base::TimeTicks::Now();
-  auto start_data = BuildStartData(*params);
+  std::unique_ptr<blink::WebEmbeddedWorkerStartData> start_data =
+      BuildStartData(*params);
 
   DCHECK(!params->provider_info->cache_storage ||
          base::FeatureList::IsEnabled(
@@ -119,7 +120,7 @@
       service_worker_context_client_.get(), cache_storage.PassPipe(),
       interface_provider.PassHandle(), browser_interface_broker.PassPipe());
   service_worker_context_client_->StartWorkerContextOnInitiatorThread(
-      std::move(worker), start_data,
+      std::move(worker), std::move(start_data),
       std::move(installed_scripts_manager_params),
       params->content_settings_proxy.PassHandle());
 }
@@ -165,25 +166,24 @@
   delete this;
 }
 
-blink::WebEmbeddedWorkerStartData
+std::unique_ptr<blink::WebEmbeddedWorkerStartData>
 EmbeddedWorkerInstanceClientImpl::BuildStartData(
     const blink::mojom::EmbeddedWorkerStartParams& params) {
   DCHECK(initiator_thread_task_runner_->BelongsToCurrentThread());
-  blink::WebEmbeddedWorkerStartData start_data;
-  start_data.script_url = params.script_url;
-  start_data.user_agent = blink::WebString::FromUTF8(params.user_agent);
-  start_data.script_type = params.script_type;
-  start_data.wait_for_debugger_mode =
+  auto start_data = std::make_unique<blink::WebEmbeddedWorkerStartData>();
+  start_data->script_url = params.script_url;
+  start_data->user_agent = blink::WebString::FromUTF8(params.user_agent);
+  start_data->script_type = params.script_type;
+  start_data->wait_for_debugger_mode =
       params.wait_for_debugger
           ? blink::WebEmbeddedWorkerStartData::kWaitForDebugger
           : blink::WebEmbeddedWorkerStartData::kDontWaitForDebugger;
-  start_data.devtools_worker_token = params.devtools_worker_token;
-  start_data.v8_cache_options =
+  start_data->devtools_worker_token = params.devtools_worker_token;
+  start_data->v8_cache_options =
       static_cast<blink::WebSettings::V8CacheOptions>(params.v8_cache_options);
-  start_data.privacy_preferences = blink::PrivacyPreferences(
+  start_data->privacy_preferences = blink::PrivacyPreferences(
       params.renderer_preferences->enable_do_not_track,
       params.renderer_preferences->enable_referrers);
-
   return start_data;
 }
 
diff --git a/content/renderer/service_worker/embedded_worker_instance_client_impl.h b/content/renderer/service_worker/embedded_worker_instance_client_impl.h
index a59694e..37ecbe1 100644
--- a/content/renderer/service_worker/embedded_worker_instance_client_impl.h
+++ b/content/renderer/service_worker/embedded_worker_instance_client_impl.h
@@ -81,7 +81,7 @@
   // Handler of connection error bound to |receiver_|.
   void OnError();
 
-  blink::WebEmbeddedWorkerStartData BuildStartData(
+  std::unique_ptr<blink::WebEmbeddedWorkerStartData> BuildStartData(
       const blink::mojom::EmbeddedWorkerStartParams& params);
 
   mojo::Receiver<blink::mojom::EmbeddedWorkerInstanceClient> receiver_;
diff --git a/content/renderer/service_worker/service_worker_context_client.cc b/content/renderer/service_worker/service_worker_context_client.cc
index fd1a5da..c6ad461 100644
--- a/content/renderer/service_worker/service_worker_context_client.cc
+++ b/content/renderer/service_worker/service_worker_context_client.cc
@@ -171,14 +171,14 @@
 
 void ServiceWorkerContextClient::StartWorkerContextOnInitiatorThread(
     std::unique_ptr<blink::WebEmbeddedWorker> worker,
-    const blink::WebEmbeddedWorkerStartData& start_data,
+    std::unique_ptr<blink::WebEmbeddedWorkerStartData> start_data,
     std::unique_ptr<blink::WebServiceWorkerInstalledScriptsManagerParams>
         installed_scripts_manager_params,
     mojo::ScopedMessagePipeHandle content_settings_handle) {
   DCHECK(initiator_thread_task_runner_->RunsTasksInCurrentSequence());
   worker_ = std::move(worker);
   worker_->StartWorkerContext(
-      start_data, std::move(installed_scripts_manager_params),
+      std::move(start_data), std::move(installed_scripts_manager_params),
       std::move(content_settings_handle), initiator_thread_task_runner_);
 }
 
diff --git a/content/renderer/service_worker/service_worker_context_client.h b/content/renderer/service_worker/service_worker_context_client.h
index 2e0336e9..fcddefd 100644
--- a/content/renderer/service_worker/service_worker_context_client.h
+++ b/content/renderer/service_worker/service_worker_context_client.h
@@ -115,7 +115,7 @@
   // Called on the initiator thread.
   void StartWorkerContextOnInitiatorThread(
       std::unique_ptr<blink::WebEmbeddedWorker> worker,
-      const blink::WebEmbeddedWorkerStartData& start_data,
+      std::unique_ptr<blink::WebEmbeddedWorkerStartData> start_data,
       std::unique_ptr<blink::WebServiceWorkerInstalledScriptsManagerParams>,
       mojo::ScopedMessagePipeHandle content_settings_handle);
   // Called on the initiator thread.
diff --git a/content/shell/renderer/web_test/web_test_content_renderer_client.cc b/content/shell/renderer/web_test/web_test_content_renderer_client.cc
index 8637959..f93b63c 100644
--- a/content/shell/renderer/web_test/web_test_content_renderer_client.cc
+++ b/content/shell/renderer/web_test/web_test_content_renderer_client.cc
@@ -10,7 +10,6 @@
 #include "base/callback.h"
 #include "base/command_line.h"
 #include "base/debug/debugger.h"
-#include "build/build_config.h"
 #include "components/web_cache/renderer/web_cache_impl.h"
 #include "content/public/common/content_constants.h"
 #include "content/public/common/content_switches.h"
@@ -124,14 +123,4 @@
   return false;
 }
 
-bool WebTestContentRendererClient::SuppressLegacyTLSVersionConsoleMessage() {
-#if defined(OS_MACOSX)
-  // Blink uses an outdated test server on older versions of macOS. Until those
-  // are fixed, suppress the warning. See https://crbug.com/936515.
-  return true;
-#else
-  return false;
-#endif
-}
-
 }  // namespace content
diff --git a/content/shell/renderer/web_test/web_test_content_renderer_client.h b/content/shell/renderer/web_test/web_test_content_renderer_client.h
index ae75e9e..0bcc671 100644
--- a/content/shell/renderer/web_test/web_test_content_renderer_client.h
+++ b/content/shell/renderer/web_test/web_test_content_renderer_client.h
@@ -31,7 +31,6 @@
       v8::Local<v8::Context> context) override;
   void SetRuntimeFeaturesDefaultsBeforeBlinkInitialization() override;
   bool IsIdleMediaSuspendEnabled() override;
-  bool SuppressLegacyTLSVersionConsoleMessage() override;
 
  private:
   std::unique_ptr<WebTestRenderThreadObserver> shell_observer_;
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-android.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-android.txt
index badc901b..e3c3127 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-android.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-android.txt
@@ -1,5 +1,5 @@
 android.webkit.WebView focusable scrollable
-++android.view.View
 ++android.app.Dialog role_description='dialog'
 ++++android.view.View name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++android.view.View role_description='link' clickable focusable focused link name='Link inside the dialog.'
+++android.view.View
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-auralinux.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-auralinux.txt
index 6a184f3..210eb46 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-auralinux.txt
@@ -1,6 +1,6 @@
 [document web]
-++[section]
 ++[dialog] modal
 ++++[text] name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++[link] name='Link inside the dialog.'
 ++++++[text] name='Link inside the dialog.'
+++[section]
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-blink.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-blink.txt
index c58f987..1cf7805 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-blink.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-blink.txt
@@ -1,14 +1,8 @@
 rootWebArea
-++genericContainer ignored invisible
-++++region ignored invisible
-++++++popUpButton collapsed ignored invisible value='This should be pruned out of the tree.'
-++++button ignored invisible name='Choose File' value='No file chosen'
-++genericContainer ignored invisible
-++dialog ignored invisible
-++genericContainer
 ++dialog
 ++++staticText name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++++inlineTextBox name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++link name='Link inside the dialog.'
 ++++++staticText name='Link inside the dialog.'
 ++++++++inlineTextBox name='Link inside the dialog.'
+++genericContainer
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-mac.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-mac.txt
index e3e9609b..b2f19e8 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-mac.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-mac.txt
@@ -1,6 +1,6 @@
 AXWebArea
-++AXGroup
 ++AXGroup AXSubrole=AXApplicationDialog
 ++++AXStaticText AXValue='The dialog subtree should be the only text content in the accessibility tree. '
 ++++AXLink AXTitle='Link inside the dialog.'
 ++++++AXStaticText AXValue='Link inside the dialog.'
+++AXGroup
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-uia-win.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-uia-win.txt
index 380e5b2..bcfd56f 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-uia-win.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-uia-win.txt
@@ -1,5 +1,5 @@
 document
-++group
 ++dialog Window.IsModal=true
 ++++description Name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++link Name='Link inside the dialog.'
+++group
diff --git a/content/test/data/accessibility/html/modal-dialog-opened-expected-win.txt b/content/test/data/accessibility/html/modal-dialog-opened-expected-win.txt
index 09ab3cb..8fd398a 100644
--- a/content/test/data/accessibility/html/modal-dialog-opened-expected-win.txt
+++ b/content/test/data/accessibility/html/modal-dialog-opened-expected-win.txt
@@ -1,6 +1,6 @@
 ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
-++IA2_ROLE_SECTION
 ++ROLE_SYSTEM_DIALOG IA2_STATE_MODAL
 ++++ROLE_SYSTEM_STATICTEXT name='The dialog subtree should be the only text content in the accessibility tree. '
 ++++ROLE_SYSTEM_LINK name='Link inside the dialog.' FOCUSABLE
 ++++++ROLE_SYSTEM_STATICTEXT name='Link inside the dialog.'
+++IA2_ROLE_SECTION
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-android.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-android.txt
index 75cb37a..aaa0943 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-android.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-android.txt
@@ -1,5 +1,5 @@
 android.webkit.WebView focusable focused scrollable
-++android.view.View
 ++android.app.Dialog role_description='dialog'
 ++++android.view.View name='This is the now active dialog. Of course it should be in the tree. '
 ++++android.widget.Button role_description='button' clickable focusable name='This is in the active dialog and should be in the tree.'
+++android.view.View
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-auralinux.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-auralinux.txt
index 7a0a189..c072723 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-auralinux.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-auralinux.txt
@@ -1,5 +1,5 @@
 [document web]
-++[section]
 ++[dialog] modal
 ++++[text] name='This is the now active dialog. Of course it should be in the tree. '
 ++++[push button] name='This is in the active dialog and should be in the tree.'
+++[section]
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-blink.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-blink.txt
index 00f638e14..98dcc461 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-blink.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-blink.txt
@@ -1,12 +1,6 @@
 rootWebArea
-++genericContainer ignored invisible
-++++region ignored invisible
-++++++popUpButton collapsed ignored invisible value='This should be pruned out of the tree.'
-++++button ignored invisible name='This button should not be in the tree.'
-++genericContainer ignored invisible
-++dialog ignored invisible
-++genericContainer
 ++dialog
 ++++staticText name='This is the now active dialog. Of course it should be in the tree. '
 ++++++inlineTextBox name='This is the now active dialog. Of course it should be in the tree. '
 ++++button name='This is in the active dialog and should be in the tree.'
+++genericContainer
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-mac.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-mac.txt
index fd373b1..1561a8b 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-mac.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-mac.txt
@@ -1,5 +1,5 @@
 AXWebArea
-++AXGroup
 ++AXGroup AXSubrole=AXApplicationDialog
 ++++AXStaticText AXValue='This is the now active dialog. Of course it should be in the tree. '
 ++++AXButton AXTitle='This is in the active dialog and should be in the tree.'
+++AXGroup
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-uia-win.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-uia-win.txt
index 7275201..35d2709 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-uia-win.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-uia-win.txt
@@ -1,5 +1,5 @@
 document
-++group
 ++dialog Window.IsModal=true
 ++++description Name='This is the now active dialog. Of course it should be in the tree. '
 ++++button Name='This is in the active dialog and should be in the tree.'
+++group
diff --git a/content/test/data/accessibility/html/modal-dialog-stack-expected-win.txt b/content/test/data/accessibility/html/modal-dialog-stack-expected-win.txt
index df25937bd..0160c77e 100644
--- a/content/test/data/accessibility/html/modal-dialog-stack-expected-win.txt
+++ b/content/test/data/accessibility/html/modal-dialog-stack-expected-win.txt
@@ -1,5 +1,5 @@
 ROLE_SYSTEM_DOCUMENT READONLY FOCUSABLE
-++IA2_ROLE_SECTION
 ++ROLE_SYSTEM_DIALOG IA2_STATE_MODAL
 ++++ROLE_SYSTEM_STATICTEXT name='This is the now active dialog. Of course it should be in the tree. '
 ++++ROLE_SYSTEM_PUSHBUTTON name='This is in the active dialog and should be in the tree.' FOCUSABLE
+++IA2_ROLE_SECTION
diff --git a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
index 3449c7c..c8d9e64 100644
--- a/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
+++ b/content/test/gpu/gpu_tests/test_expectations/webgl_conformance_expectations.txt
@@ -247,22 +247,23 @@
 crbug.com/angleproject/3741 [ win vulkan passthrough ] conformance/textures/misc/mipmap-fbo.html [ RetryOnFailure ]
 
 # Vulkan / Win / NVIDIA / Passthrough command decoder
+crbug.com/angleproject/3935 [ win nvidia vulkan passthrough ] conformance/canvas/viewport-unchanged-upon-resize.html [ Failure ]
 crbug.com/963205 [ win nvidia vulkan passthrough ] conformance/extensions/webgl-compressed-texture-s3tc-srgb.html [ Failure ]
 crbug.com/964321 [ win nvidia vulkan passthrough ] conformance/extensions/webgl-compressed-texture-s3tc.html [ RetryOnFailure ]
 crbug.com/963217 [ win nvidia vulkan passthrough ] conformance/glsl/samplers/glsl-function-texture2dprojlod.html [ Failure ]
 crbug.com/angleproject/2915 [ win nvidia vulkan passthrough ] conformance/limits/gl-max-texture-dimensions.html [ Failure ]
+crbug.com/angleproject/3883 [ win nvidia vulkan passthrough ] conformance/misc/uninitialized-test.html [ Failure ]
+crbug.com/angleproject/2909 [ win nvidia vulkan passthrough ] conformance/ogles/GL/faceforward/faceforward_001_to_006.html [ Failure ]
 crbug.com/964331 [ win10 nvidia vulkan passthrough ] conformance/ogles/GL/pow/pow_009_to_016.html [ Failure ]
 crbug.com/964331 [ win10 nvidia vulkan passthrough ] conformance/ogles/GL/pow/pow_017_to_024.html [ Failure ]
+crbug.com/angleproject/2722 [ win nvidia vulkan passthrough ] conformance/renderbuffers/framebuffer-state-restoration.html [ Failure ]
 crbug.com/angleproject/2939 [ win nvidia vulkan passthrough ] conformance/rendering/gl-scissor-fbo-test.html [ RetryOnFailure ]
 crbug.com/963223 [ win nvidia vulkan passthrough ] conformance/rendering/out-of-bounds-array-buffers.html [ Failure ]
+crbug.com/angleproject/2722 [ win nvidia vulkan passthrough ] conformance/textures/misc/texture-attachment-formats.html [ Failure ]
 crbug.com/angleproject/2915 [ win nvidia vulkan passthrough ] conformance/textures/misc/texture-size.html [ Failure ]
 crbug.com/angleproject/2930 [ win nvidia vulkan passthrough ] conformance/textures/misc/texture-size-cube-maps.html [ Failure ]
 crbug.com/angleproject/3481 [ win nvidia vulkan passthrough ] conformance/textures/misc/texture-sub-image-cube-maps.html [ Failure ]
 crbug.com/angleproject/2926 [ win nvidia vulkan passthrough ] deqp/data/gles2/shaders/conversions.html [ Failure ]
-crbug.com/angleproject/2909 [ win nvidia vulkan passthrough ] conformance/ogles/GL/faceforward/faceforward_001_to_006.html [ Failure ]
-crbug.com/angleproject/2722 [ win nvidia vulkan passthrough ] conformance/textures/misc/texture-attachment-formats.html [ Failure ]
-crbug.com/angleproject/2722 [ win nvidia vulkan passthrough ] conformance/renderbuffers/framebuffer-state-restoration.html [ Failure ]
-crbug.com/angleproject/3883 [ win nvidia vulkan passthrough ] conformance/misc/uninitialized-test.html [ Failure ]
 
 # Vulkan / Win / AMD / Passthrough command decoder
 crbug.com/angleproject/2898 [ win amd vulkan passthrough ] conformance/extensions/oes-texture-float-with-canvas.html [ Failure ]
diff --git a/extensions/browser/extension_function_histogram_value.h b/extensions/browser/extension_function_histogram_value.h
index 69d71d8..417cb2c 100644
--- a/extensions/browser/extension_function_histogram_value.h
+++ b/extensions/browser/extension_function_histogram_value.h
@@ -1445,6 +1445,7 @@
   AUTOTESTPRIVATE_SETOVERVIEWMODESTATE = 1382,
   AUTOTESTPRIVATE_TAKESCREENSHOTFORDISPLAY = 1383,
   AUTOFILLPRIVATE_SETCREDITCARDFIDOAUTHENABLEDSTATE = 1384,
+  USERSPRIVATE_ISWHITELISTEDUSER = 1385,
   // Last entry: Add new entries above, then run:
   // python tools/metrics/histograms/update_extension_histograms.py
   ENUM_BOUNDARY
diff --git a/fuchsia/engine/BUILD.gn b/fuchsia/engine/BUILD.gn
index 6298f93..70ea8a6 100644
--- a/fuchsia/engine/BUILD.gn
+++ b/fuchsia/engine/BUILD.gn
@@ -211,6 +211,8 @@
     "lib/libEGL.so",
     "lib/libGLESv2.so",
     "lib/libfuchsia_egl.so",
+    "lib/libvk_swiftshader.so",
+    "swiftshader/libvk_swiftshader_icd.json",
   ]
 }
 
diff --git a/gpu/command_buffer/build_webgpu_cmd_buffer.py b/gpu/command_buffer/build_webgpu_cmd_buffer.py
index e8f179a..e90815dc 100755
--- a/gpu/command_buffer/build_webgpu_cmd_buffer.py
+++ b/gpu/command_buffer/build_webgpu_cmd_buffer.py
@@ -17,6 +17,16 @@
 #
 # Options are documented in build_gles2_cmd_buffer.py/build_raster_cmd_buffer.py
 _NAMED_TYPE_INFO = {
+  'PowerPreference': {
+    'type': 'PowerPreference',
+    'valid': [
+      'PowerPreference::kHighPerformance',
+      'PowerPreference::kLowPower',
+    ],
+    'invalid': [
+      'PowerPreference::kNumPowerPreferences',
+    ],
+  }
 }
 
 # A function info object specifies the type and other special data for the
@@ -50,6 +60,10 @@
   'DissociateMailbox': {
     'trace_level': 1,
   },
+  'RequestAdapter': {
+    'impl_func': False,
+    'cmd_args': 'uint32_t power_preference'
+  },
 }
 
 def main(argv):
diff --git a/gpu/command_buffer/client/BUILD.gn b/gpu/command_buffer/client/BUILD.gn
index f5305b2..883c193 100644
--- a/gpu/command_buffer/client/BUILD.gn
+++ b/gpu/command_buffer/client/BUILD.gn
@@ -219,6 +219,7 @@
   deps = [
     ":interface_base",
     "//base",
+    "//gpu/command_buffer/common:webgpu",
   ]
 }
 
diff --git a/gpu/command_buffer/client/webgpu_cmd_helper_autogen.h b/gpu/command_buffer/client/webgpu_cmd_helper_autogen.h
index a90c77a..a91ea1a6 100644
--- a/gpu/command_buffer/client/webgpu_cmd_helper_autogen.h
+++ b/gpu/command_buffer/client/webgpu_cmd_helper_autogen.h
@@ -43,4 +43,11 @@
   }
 }
 
+void RequestAdapter(uint32_t power_preference) {
+  webgpu::cmds::RequestAdapter* c = GetCmdSpace<webgpu::cmds::RequestAdapter>();
+  if (c) {
+    c->Init(power_preference);
+  }
+}
+
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_CMD_HELPER_AUTOGEN_H_
diff --git a/gpu/command_buffer/client/webgpu_implementation.cc b/gpu/command_buffer/client/webgpu_implementation.cc
index edba897..1fe00d3 100644
--- a/gpu/command_buffer/client/webgpu_implementation.cc
+++ b/gpu/command_buffer/client/webgpu_implementation.cc
@@ -344,5 +344,12 @@
 #endif
 }
 
+void WebGPUImplementation::RequestAdapter(PowerPreference power_preference) {
+  GPU_CLIENT_SINGLE_THREAD_CHECK();
+  GPU_CLIENT_LOG("[" << GetLogPrefix() << "] wgRequestAdapter("
+                     << static_cast<uint32_t>(power_preference) << ")");
+  helper_->RequestAdapter(static_cast<uint32_t>(power_preference));
+}
+
 }  // namespace webgpu
 }  // namespace gpu
diff --git a/gpu/command_buffer/client/webgpu_implementation_autogen.h b/gpu/command_buffer/client/webgpu_implementation_autogen.h
index 1e299de..7578de1 100644
--- a/gpu/command_buffer/client/webgpu_implementation_autogen.h
+++ b/gpu/command_buffer/client/webgpu_implementation_autogen.h
@@ -22,4 +22,7 @@
 
 void DissociateMailbox(GLuint texture_id, GLuint texture_generation) override;
 
+void RequestAdapter(PowerPreference power_preference =
+                        PowerPreference::kHighPerformance) override;
+
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_IMPLEMENTATION_AUTOGEN_H_
diff --git a/gpu/command_buffer/client/webgpu_implementation_unittest_autogen.h b/gpu/command_buffer/client/webgpu_implementation_unittest_autogen.h
index 66a91a3..40c2c409 100644
--- a/gpu/command_buffer/client/webgpu_implementation_unittest_autogen.h
+++ b/gpu/command_buffer/client/webgpu_implementation_unittest_autogen.h
@@ -39,4 +39,15 @@
   gl_->DissociateMailbox(1, 2);
   EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
 }
+
+TEST_F(WebGPUImplementationTest, RequestAdapter) {
+  struct Cmds {
+    cmds::RequestAdapter cmd;
+  };
+  Cmds expected;
+  expected.cmd.Init(1);
+
+  gl_->RequestAdapter(PowerPreference::kHighPerformance);
+  EXPECT_EQ(0, memcmp(&expected, commands_, sizeof(expected)));
+}
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_IMPLEMENTATION_UNITTEST_AUTOGEN_H_
diff --git a/gpu/command_buffer/client/webgpu_interface.h b/gpu/command_buffer/client/webgpu_interface.h
index 5cdf6b52..70b9da65 100644
--- a/gpu/command_buffer/client/webgpu_interface.h
+++ b/gpu/command_buffer/client/webgpu_interface.h
@@ -8,6 +8,7 @@
 #include <dawn/dawn.h>
 
 #include "gpu/command_buffer/client/interface_base.h"
+#include "gpu/command_buffer/common/webgpu_cmd_enums.h"
 
 namespace gpu {
 namespace webgpu {
diff --git a/gpu/command_buffer/client/webgpu_interface_autogen.h b/gpu/command_buffer/client/webgpu_interface_autogen.h
index 9278447..2c36182 100644
--- a/gpu/command_buffer/client/webgpu_interface_autogen.h
+++ b/gpu/command_buffer/client/webgpu_interface_autogen.h
@@ -21,4 +21,6 @@
                               const GLbyte* mailbox) = 0;
 virtual void DissociateMailbox(GLuint texture_id,
                                GLuint texture_generation) = 0;
+virtual void RequestAdapter(
+    PowerPreference power_preference = PowerPreference::kHighPerformance) = 0;
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_AUTOGEN_H_
diff --git a/gpu/command_buffer/client/webgpu_interface_stub_autogen.h b/gpu/command_buffer/client/webgpu_interface_stub_autogen.h
index 6d23a68..d3f713a 100644
--- a/gpu/command_buffer/client/webgpu_interface_stub_autogen.h
+++ b/gpu/command_buffer/client/webgpu_interface_stub_autogen.h
@@ -19,4 +19,5 @@
                       GLuint usage,
                       const GLbyte* mailbox) override;
 void DissociateMailbox(GLuint texture_id, GLuint texture_generation) override;
+void RequestAdapter(PowerPreference power_preference) override;
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_STUB_AUTOGEN_H_
diff --git a/gpu/command_buffer/client/webgpu_interface_stub_impl_autogen.h b/gpu/command_buffer/client/webgpu_interface_stub_impl_autogen.h
index 0d89b68..31bafe7 100644
--- a/gpu/command_buffer/client/webgpu_interface_stub_impl_autogen.h
+++ b/gpu/command_buffer/client/webgpu_interface_stub_impl_autogen.h
@@ -20,4 +20,6 @@
                                            const GLbyte* /* mailbox */) {}
 void WebGPUInterfaceStub::DissociateMailbox(GLuint /* texture_id */,
                                             GLuint /* texture_generation */) {}
+void WebGPUInterfaceStub::RequestAdapter(
+    PowerPreference /* power_preference */) {}
 #endif  // GPU_COMMAND_BUFFER_CLIENT_WEBGPU_INTERFACE_STUB_IMPL_AUTOGEN_H_
diff --git a/gpu/command_buffer/common/BUILD.gn b/gpu/command_buffer/common/BUILD.gn
index 7728218..8ebd59e 100644
--- a/gpu/command_buffer/common/BUILD.gn
+++ b/gpu/command_buffer/common/BUILD.gn
@@ -178,6 +178,7 @@
 
   sources = [
     "dawn_memory_transfer_handle.h",
+    "webgpu_cmd_enums.h",
     "webgpu_cmd_format.cc",
     "webgpu_cmd_format.h",
     "webgpu_cmd_format_autogen.h",
diff --git a/gpu/command_buffer/common/webgpu_cmd_enums.h b/gpu/command_buffer/common/webgpu_cmd_enums.h
new file mode 100644
index 0000000..2f5c970b
--- /dev/null
+++ b/gpu/command_buffer/common/webgpu_cmd_enums.h
@@ -0,0 +1,25 @@
+// Copyright (c) 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_ENUMS_H_
+#define GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_ENUMS_H_
+
+namespace gpu {
+namespace webgpu {
+
+enum class PowerPreference : uint32_t {
+  kLowPower,
+  kHighPerformance,
+  kNumPowerPreferences
+};
+
+// These numbers must not change
+static_assert(static_cast<int>(PowerPreference::kLowPower) == 0,
+              "kLowPower should equal 0");
+static_assert(static_cast<int>(PowerPreference::kHighPerformance) == 1,
+              "kHighPerformance should equal 1");
+
+}  // namespace webgpu
+}  // namespace gpu
+#endif  // GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_ENUMS_H_
diff --git a/gpu/command_buffer/common/webgpu_cmd_format_autogen.h b/gpu/command_buffer/common/webgpu_cmd_format_autogen.h
index 55d67cf..e05c017b 100644
--- a/gpu/command_buffer/common/webgpu_cmd_format_autogen.h
+++ b/gpu/command_buffer/common/webgpu_cmd_format_autogen.h
@@ -164,4 +164,37 @@
 static_assert(offsetof(DissociateMailbox, texture_generation) == 8,
               "offset of DissociateMailbox texture_generation should be 8");
 
+struct RequestAdapter {
+  typedef RequestAdapter ValueType;
+  static const CommandId kCmdId = kRequestAdapter;
+  static const cmd::ArgFlags kArgFlags = cmd::kFixed;
+  static const uint8_t cmd_flags = CMD_FLAG_SET_TRACE_LEVEL(3);
+
+  static uint32_t ComputeSize() {
+    return static_cast<uint32_t>(sizeof(ValueType));  // NOLINT
+  }
+
+  void SetHeader() { header.SetCmd<ValueType>(); }
+
+  void Init(uint32_t _power_preference) {
+    SetHeader();
+    power_preference = _power_preference;
+  }
+
+  void* Set(void* cmd, uint32_t _power_preference) {
+    static_cast<ValueType*>(cmd)->Init(_power_preference);
+    return NextCmdAddress<ValueType>(cmd);
+  }
+
+  gpu::CommandHeader header;
+  uint32_t power_preference;
+};
+
+static_assert(sizeof(RequestAdapter) == 8,
+              "size of RequestAdapter should be 8");
+static_assert(offsetof(RequestAdapter, header) == 0,
+              "offset of RequestAdapter header should be 0");
+static_assert(offsetof(RequestAdapter, power_preference) == 4,
+              "offset of RequestAdapter power_preference should be 4");
+
 #endif  // GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_FORMAT_AUTOGEN_H_
diff --git a/gpu/command_buffer/common/webgpu_cmd_format_test_autogen.h b/gpu/command_buffer/common/webgpu_cmd_format_test_autogen.h
index 8096fe5..39f18fe 100644
--- a/gpu/command_buffer/common/webgpu_cmd_format_test_autogen.h
+++ b/gpu/command_buffer/common/webgpu_cmd_format_test_autogen.h
@@ -79,4 +79,14 @@
   CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
 }
 
+TEST_F(WebGPUFormatTest, RequestAdapter) {
+  cmds::RequestAdapter& cmd = *GetBufferAs<cmds::RequestAdapter>();
+  void* next_cmd = cmd.Set(&cmd, static_cast<uint32_t>(11));
+  EXPECT_EQ(static_cast<uint32_t>(cmds::RequestAdapter::kCmdId),
+            cmd.header.command);
+  EXPECT_EQ(sizeof(cmd), cmd.header.size * 4u);
+  EXPECT_EQ(static_cast<uint32_t>(11), cmd.power_preference);
+  CheckBytesWrittenMatchesExpectedSize(next_cmd, sizeof(cmd));
+}
+
 #endif  // GPU_COMMAND_BUFFER_COMMON_WEBGPU_CMD_FORMAT_TEST_AUTOGEN_H_
diff --git a/gpu/command_buffer/common/webgpu_cmd_ids_autogen.h b/gpu/command_buffer/common/webgpu_cmd_ids_autogen.h
index ff35315d..a46d5e78 100644
--- a/gpu/command_buffer/common/webgpu_cmd_ids_autogen.h
+++ b/gpu/command_buffer/common/webgpu_cmd_ids_autogen.h
@@ -14,7 +14,8 @@
 #define WEBGPU_COMMAND_LIST(OP)           \
   OP(DawnCommands)              /* 256 */ \
   OP(AssociateMailboxImmediate) /* 257 */ \
-  OP(DissociateMailbox)         /* 258 */
+  OP(DissociateMailbox)         /* 258 */ \
+  OP(RequestAdapter)            /* 259 */
 
 enum CommandId {
   kOneBeforeStartPoint =
diff --git a/gpu/command_buffer/service/webgpu_cmd_validation.h b/gpu/command_buffer/service/webgpu_cmd_validation.h
index 5b9d460..fc0c337 100644
--- a/gpu/command_buffer/service/webgpu_cmd_validation.h
+++ b/gpu/command_buffer/service/webgpu_cmd_validation.h
@@ -9,11 +9,58 @@
 
 #include <algorithm>
 #include <vector>
+#include "base/stl_util.h"
+#include "gpu/command_buffer/common/webgpu_cmd_enums.h"
 #include "gpu/command_buffer/common/webgpu_cmd_format.h"
+#include "gpu/command_buffer/service/gles2_cmd_validation.h"
 
 namespace gpu {
 namespace webgpu {
 
+// ValueValidator returns true if a value is valid.
+template <typename T>
+class ValueValidator {
+ public:
+  ValueValidator() = default;
+
+  ValueValidator(const T* valid_values, int num_values) {
+    AddValues(valid_values, num_values);
+  }
+
+  void AddValue(const T value) {
+    if (!IsValid(value)) {
+      valid_values_.push_back(value);
+    }
+  }
+
+  void AddValues(const T* valid_values, int num_values) {
+    for (int ii = 0; ii < num_values; ++ii) {
+      AddValue(valid_values[ii]);
+    }
+  }
+
+  void RemoveValues(const T* invalid_values, int num_values) {
+    for (int ii = 0; ii < num_values; ++ii) {
+      auto iter = std::find(valid_values_.begin(), valid_values_.end(),
+                            invalid_values[ii]);
+      if (iter != valid_values_.end()) {
+        valid_values_.erase(iter);
+        DCHECK(!IsValid(invalid_values[ii]));
+      }
+    }
+  }
+
+  bool IsValid(const T value) const {
+    return std::find(valid_values_.begin(), valid_values_.end(), value) !=
+           valid_values_.end();
+  }
+
+  const std::vector<T>& GetValues() const { return valid_values_; }
+
+ private:
+  std::vector<T> valid_values_;
+};
+
 struct Validators {
   Validators();
 
diff --git a/gpu/command_buffer/service/webgpu_cmd_validation_autogen.h b/gpu/command_buffer/service/webgpu_cmd_validation_autogen.h
index 18fd85321..5115063 100644
--- a/gpu/command_buffer/service/webgpu_cmd_validation_autogen.h
+++ b/gpu/command_buffer/service/webgpu_cmd_validation_autogen.h
@@ -11,4 +11,6 @@
 #ifndef GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_AUTOGEN_H_
 #define GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_AUTOGEN_H_
 
+ValueValidator<PowerPreference> power_preference;
+
 #endif  // GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/webgpu_cmd_validation_implementation_autogen.h b/gpu/command_buffer/service/webgpu_cmd_validation_implementation_autogen.h
index ee3bf3d..dad69a2 100644
--- a/gpu/command_buffer/service/webgpu_cmd_validation_implementation_autogen.h
+++ b/gpu/command_buffer/service/webgpu_cmd_validation_implementation_autogen.h
@@ -11,6 +11,13 @@
 #ifndef GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_
 #define GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_
 
-Validators::Validators() {}
+static const PowerPreference valid_power_preference_table[] = {
+    PowerPreference::kHighPerformance,
+    PowerPreference::kLowPower,
+};
+
+Validators::Validators()
+    : power_preference(valid_power_preference_table,
+                       base::size(valid_power_preference_table)) {}
 
 #endif  // GPU_COMMAND_BUFFER_SERVICE_WEBGPU_CMD_VALIDATION_IMPLEMENTATION_AUTOGEN_H_
diff --git a/gpu/command_buffer/service/webgpu_decoder_impl.cc b/gpu/command_buffer/service/webgpu_decoder_impl.cc
index 27f097a..107ca93 100644
--- a/gpu/command_buffer/service/webgpu_decoder_impl.cc
+++ b/gpu/command_buffer/service/webgpu_decoder_impl.cc
@@ -17,6 +17,7 @@
 #include "base/trace_event/trace_event.h"
 #include "build/build_config.h"
 #include "gpu/command_buffer/common/mailbox.h"
+#include "gpu/command_buffer/common/webgpu_cmd_enums.h"
 #include "gpu/command_buffer/common/webgpu_cmd_format.h"
 #include "gpu/command_buffer/common/webgpu_cmd_ids.h"
 #include "gpu/command_buffer/service/command_buffer_service.h"
@@ -99,6 +100,19 @@
   return true;
 }
 
+dawn_native::DeviceType PowerPreferenceToDawnDeviceType(
+    PowerPreference power_preference) {
+  switch (power_preference) {
+    case PowerPreference::kLowPower:
+      return dawn_native::DeviceType::IntegratedGPU;
+    case PowerPreference::kHighPerformance:
+      return dawn_native::DeviceType::DiscreteGPU;
+    default:
+      NOTREACHED();
+      return dawn_native::DeviceType::CPU;
+  }
+}
+
 }  // namespace
 
 class WebGPUDecoderImpl final : public WebGPUDecoder {
@@ -328,7 +342,12 @@
   // only if not returning an error.
   error::Error current_decoder_error_ = error::kNoError;
 
-  DawnDevice CreateDefaultDevice();
+  void DiscoverAdapters();
+
+  dawn_native::Adapter GetPreferredAdapter(
+      PowerPreference power_preference) const;
+
+  error::Error InitDawnDeviceAndSetWireServer(dawn_native::Adapter* adapter);
 
   std::unique_ptr<SharedImageRepresentationFactory>
       shared_image_representation_factory_;
@@ -342,6 +361,7 @@
   std::unique_ptr<WireServerCommandSerializer> wire_serializer_;
   std::unique_ptr<DawnServiceMemoryTransferService> memory_transfer_service_;
   std::unique_ptr<dawn_native::Instance> dawn_instance_;
+  std::vector<dawn_native::Adapter> dawn_adapters_;
   DawnProcTable dawn_procs_;
   DawnDevice dawn_device_ = nullptr;
   std::unique_ptr<dawn_wire::WireServer> wire_server_;
@@ -402,9 +422,17 @@
 }
 
 ContextResult WebGPUDecoderImpl::Initialize() {
-  dawn_device_ = CreateDefaultDevice();
+  DiscoverAdapters();
+  return ContextResult::kSuccess;
+}
+
+error::Error WebGPUDecoderImpl::InitDawnDeviceAndSetWireServer(
+    dawn_native::Adapter* adapter) {
+  DCHECK(adapter != nullptr && (*adapter));
+
+  dawn_device_ = adapter->CreateDevice();
   if (dawn_device_ == nullptr) {
-    return ContextResult::kFatalFailure;
+    return error::kLostContext;
   }
 
   dawn_wire::WireServerDescriptor descriptor = {};
@@ -415,10 +443,13 @@
 
   wire_server_ = std::make_unique<dawn_wire::WireServer>(descriptor);
 
-  return ContextResult::kSuccess;
+  return error::kNoError;
 }
 
-DawnDevice WebGPUDecoderImpl::CreateDefaultDevice() {
+void WebGPUDecoderImpl::DiscoverAdapters() {
+  dawn_instance_->DiscoverDefaultAdapters();
+  std::vector<dawn_native::Adapter> adapters = dawn_instance_->GetAdapters();
+  for (const dawn_native::Adapter& adapter : adapters) {
 #if defined(OS_WIN)
   // On Windows 10, we pick D3D12 backend because the rest of Chromium renders
   // with D3D11. By the same token, we pick the first adapter because ANGLE also
@@ -427,57 +458,63 @@
   // decide to handle multiple adapters, code on the Chromium side will need to
   // change to do appropriate cross adapter copying to make this happen, either
   // manually or by using DirectComposition.
-  dawn_instance_->DiscoverDefaultAdapters();
-  const std::vector<dawn_native::Adapter> adapters =
-      dawn_instance_->GetAdapters();
-
-  for (dawn_native::Adapter adapter : adapters) {
     if (adapter.GetBackendType() == dawn_native::BackendType::D3D12) {
-      return adapter.CreateDevice();
+#else
+    if (adapter.GetBackendType() != dawn_native::BackendType::Null &&
+        adapter.GetBackendType() != dawn_native::BackendType::OpenGL) {
+#endif
+      dawn_adapters_.push_back(adapter);
     }
   }
-  return nullptr;
-#else
-  dawn_instance_->DiscoverDefaultAdapters();
-  std::vector<dawn_native::Adapter> adapters = dawn_instance_->GetAdapters();
+}
 
+dawn_native::Adapter WebGPUDecoderImpl::GetPreferredAdapter(
+    PowerPreference power_preference) const {
+  dawn_native::DeviceType preferred_device_type =
+      PowerPreferenceToDawnDeviceType(power_preference);
+
+  dawn_native::Adapter discrete_gpu_adapter = {};
   dawn_native::Adapter integrated_gpu_adapter = {};
   dawn_native::Adapter cpu_adapter = {};
   dawn_native::Adapter unknown_adapter = {};
 
-  for (dawn_native::Adapter adapter : adapters) {
-    if (adapter.GetBackendType() != dawn_native::BackendType::Null &&
-        adapter.GetBackendType() != dawn_native::BackendType::OpenGL) {
-      switch (adapter.GetDeviceType()) {
-        case dawn_native::DeviceType::DiscreteGPU:
-          // For now, we always prefer the discrete GPU
-          return adapter.CreateDevice();
-        case dawn_native::DeviceType::IntegratedGPU:
-          integrated_gpu_adapter = adapter;
-          break;
-        case dawn_native::DeviceType::CPU:
-          cpu_adapter = adapter;
-          break;
-        case dawn_native::DeviceType::Unknown:
-          unknown_adapter = adapter;
-          break;
-        default:
-          NOTREACHED();
-          break;
-      }
+  for (const dawn_native::Adapter& adapter : dawn_adapters_) {
+    if (adapter.GetDeviceType() == preferred_device_type) {
+      return adapter;
+    }
+    switch (adapter.GetDeviceType()) {
+      case dawn_native::DeviceType::DiscreteGPU:
+        discrete_gpu_adapter = adapter;
+        break;
+      case dawn_native::DeviceType::IntegratedGPU:
+        integrated_gpu_adapter = adapter;
+        break;
+      case dawn_native::DeviceType::CPU:
+        cpu_adapter = adapter;
+        break;
+      case dawn_native::DeviceType::Unknown:
+        unknown_adapter = adapter;
+        break;
+      default:
+        NOTREACHED();
+        break;
     }
   }
+
+  // For now, we always prefer the discrete GPU
+  if (discrete_gpu_adapter) {
+    return discrete_gpu_adapter;
+  }
   if (integrated_gpu_adapter) {
-    return integrated_gpu_adapter.CreateDevice();
+    return integrated_gpu_adapter;
   }
   if (cpu_adapter) {
-    return cpu_adapter.CreateDevice();
+    return cpu_adapter;
   }
   if (unknown_adapter) {
-    return unknown_adapter.CreateDevice();
+    return unknown_adapter;
   }
-  return nullptr;
-#endif
+  return dawn_native::Adapter();
 }
 
 const char* WebGPUDecoderImpl::GetCommandName(unsigned int command_id) const {
@@ -553,6 +590,24 @@
   return result;
 }
 
+error::Error WebGPUDecoderImpl::HandleRequestAdapter(
+    uint32_t immediate_data_size,
+    const volatile void* cmd_data) {
+  const volatile webgpu::cmds::RequestAdapter& c =
+      *static_cast<const volatile webgpu::cmds::RequestAdapter*>(cmd_data);
+
+  PowerPreference power_preference =
+      static_cast<PowerPreference>(c.power_preference);
+  dawn_native::Adapter requested_adapter =
+      GetPreferredAdapter(power_preference);
+  if (!requested_adapter) {
+    return error::kLostContext;
+  }
+
+  // TODO(jiawei.shao@intel.com): support creating device with device descriptor
+  return InitDawnDeviceAndSetWireServer(&requested_adapter);
+}
+
 error::Error WebGPUDecoderImpl::HandleDawnCommands(
     uint32_t immediate_data_size,
     const volatile void* cmd_data) {
diff --git a/gpu/command_buffer/service/webgpu_decoder_unittest.cc b/gpu/command_buffer/service/webgpu_decoder_unittest.cc
index 3a20602..b7cda9ce 100644
--- a/gpu/command_buffer/service/webgpu_decoder_unittest.cc
+++ b/gpu/command_buffer/service/webgpu_decoder_unittest.cc
@@ -6,6 +6,7 @@
 
 #include "gpu/command_buffer/client/client_test_helper.h"
 #include "gpu/command_buffer/common/shared_image_usage.h"
+#include "gpu/command_buffer/common/webgpu_cmd_enums.h"
 #include "gpu/command_buffer/common/webgpu_cmd_format.h"
 #include "gpu/command_buffer/service/context_group.h"
 #include "gpu/command_buffer/service/decoder_client.h"
@@ -46,6 +47,15 @@
                                          &outputter_));
     if (decoder_->Initialize() != ContextResult::kSuccess) {
       decoder_ = nullptr;
+    } else {
+      cmds::RequestAdapter requestAdapterCmd;
+      requestAdapterCmd.Init(
+          static_cast<uint32_t>(webgpu::PowerPreference::kHighPerformance));
+      if (ExecuteCmd(requestAdapterCmd) == error::kLostContext) {
+        decoder_ = nullptr;
+      } else {
+        ASSERT_EQ(error::kNoError, ExecuteCmd(requestAdapterCmd));
+      }
     }
 
     factory_ = std::make_unique<SharedImageFactory>(
diff --git a/gpu/command_buffer/tests/webgpu_test.cc b/gpu/command_buffer/tests/webgpu_test.cc
index 0b00e0f..22207fa 100644
--- a/gpu/command_buffer/tests/webgpu_test.cc
+++ b/gpu/command_buffer/tests/webgpu_test.cc
@@ -78,6 +78,8 @@
     return;
   }
 
+  webgpu()->RequestAdapter(webgpu::PowerPreference::kHighPerformance);
+
   DawnProcTable procs = webgpu()->GetProcs();
   dawnSetProcs(&procs);
 }
diff --git a/gpu/command_buffer/webgpu_cmd_buffer_functions.txt b/gpu/command_buffer/webgpu_cmd_buffer_functions.txt
index 53dbe00..9c05898 100644
--- a/gpu/command_buffer/webgpu_cmd_buffer_functions.txt
+++ b/gpu/command_buffer/webgpu_cmd_buffer_functions.txt
@@ -9,3 +9,4 @@
 GL_APICALL void GL_APIENTRY wgDawnCommands (const char* commands, size_t size);
 GL_APICALL void GL_APIENTRY wgAssociateMailbox (GLuint device_id, GLuint device_generation, GLuint id, GLuint generation, GLuint usage, const GLbyte* mailbox);
 GL_APICALL void GL_APIENTRY wgDissociateMailbox (GLuint texture_id, GLuint texture_generation);
+GL_APICALL void GL_APIENTRY wgRequestAdapter (EnumClassPowerPreference power_preference = PowerPreference::kHighPerformance);
diff --git a/gpu/vulkan/generate_bindings.py b/gpu/vulkan/generate_bindings.py
index 9a5539cb..0d7a589 100755
--- a/gpu/vulkan/generate_bindings.py
+++ b/gpu/vulkan/generate_bindings.py
@@ -150,6 +150,7 @@
   {
     'min_api_version': 'VK_API_VERSION_1_1',
     'functions': [
+      'vkGetDeviceQueue2',
       'vkGetImageMemoryRequirements2',
     ]
   },
diff --git a/gpu/vulkan/vulkan_device_queue.cc b/gpu/vulkan/vulkan_device_queue.cc
index 6e351fa..cd0c606 100644
--- a/gpu/vulkan/vulkan_device_queue.cc
+++ b/gpu/vulkan/vulkan_device_queue.cc
@@ -171,7 +171,6 @@
   enabled_device_features_2_.pNext = &sampler_ycbcr_conversion_features_;
 #endif  // defined(OS_ANDROID) || defined(OS_FUCHSIA)
 
-#if defined(OS_FUCHSIA)
   if (allow_protected_memory) {
     if (device_api_version < VK_MAKE_VERSION(1, 1, 0)) {
       DLOG(ERROR) << "Vulkan 1.1 is required for protected memory";
@@ -194,7 +193,6 @@
     protected_memory_features_.pNext = enabled_device_features_2_.pNext;
     enabled_device_features_2_.pNext = &protected_memory_features_;
   }
-#endif  // defined(OS_FUCHSIA)
 
   // Disable all physical device features by default.
   enabled_device_features_2_.features = {};
@@ -227,7 +225,16 @@
 
   vk_device_ = owned_vk_device_;
 
-  vkGetDeviceQueue(vk_device_, queue_index, 0, &vk_queue_);
+  if (allow_protected_memory) {
+    VkDeviceQueueInfo2 queue_info2 = {};
+    queue_info2.sType = VK_STRUCTURE_TYPE_DEVICE_QUEUE_INFO_2;
+    queue_info2.flags = VK_DEVICE_QUEUE_CREATE_PROTECTED_BIT;
+    queue_info2.queueFamilyIndex = queue_index;
+    queue_info2.queueIndex = 0;
+    vkGetDeviceQueue2(vk_device_, &queue_info2, &vk_queue_);
+  } else {
+    vkGetDeviceQueue(vk_device_, queue_index, 0, &vk_queue_);
+  }
 
   cleanup_helper_ = std::make_unique<VulkanFenceHelper>(this);
 
diff --git a/gpu/vulkan/vulkan_device_queue.h b/gpu/vulkan/vulkan_device_queue.h
index db8800f..39d378c 100644
--- a/gpu/vulkan/vulkan_device_queue.h
+++ b/gpu/vulkan/vulkan_device_queue.h
@@ -115,10 +115,8 @@
           VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_SAMPLER_YCBCR_CONVERSION_FEATURES};
 #endif  // defined(OS_ANDROID) || defined(OS_FUCHSIA)
 
-#if defined(OS_FUCHSIA)
   VkPhysicalDeviceProtectedMemoryFeatures protected_memory_features_ = {
       VK_STRUCTURE_TYPE_PHYSICAL_DEVICE_PROTECTED_MEMORY_FEATURES};
-#endif  // defined(OS_FUCHSIA)
 
   DISALLOW_COPY_AND_ASSIGN(VulkanDeviceQueue);
 };
diff --git a/gpu/vulkan/vulkan_function_pointers.cc b/gpu/vulkan/vulkan_function_pointers.cc
index 928afb492..ba7e5fc 100644
--- a/gpu/vulkan/vulkan_function_pointers.cc
+++ b/gpu/vulkan/vulkan_function_pointers.cc
@@ -728,6 +728,14 @@
   }
 
   if (api_version >= VK_API_VERSION_1_1) {
+    vkGetDeviceQueue2Fn = reinterpret_cast<PFN_vkGetDeviceQueue2>(
+        vkGetDeviceProcAddrFn(vk_device, "vkGetDeviceQueue2"));
+    if (!vkGetDeviceQueue2Fn) {
+      DLOG(WARNING) << "Failed to bind vulkan entrypoint: "
+                    << "vkGetDeviceQueue2";
+      return false;
+    }
+
     vkGetImageMemoryRequirements2Fn =
         reinterpret_cast<PFN_vkGetImageMemoryRequirements2>(
             vkGetDeviceProcAddrFn(vk_device, "vkGetImageMemoryRequirements2"));
diff --git a/gpu/vulkan/vulkan_function_pointers.h b/gpu/vulkan/vulkan_function_pointers.h
index 95ae21c1..3d73440 100644
--- a/gpu/vulkan/vulkan_function_pointers.h
+++ b/gpu/vulkan/vulkan_function_pointers.h
@@ -168,6 +168,7 @@
   PFN_vkUpdateDescriptorSets vkUpdateDescriptorSetsFn = nullptr;
   PFN_vkWaitForFences vkWaitForFencesFn = nullptr;
 
+  PFN_vkGetDeviceQueue2 vkGetDeviceQueue2Fn = nullptr;
   PFN_vkGetImageMemoryRequirements2 vkGetImageMemoryRequirements2Fn = nullptr;
 
 #if defined(OS_ANDROID)
@@ -359,6 +360,7 @@
   gpu::GetVulkanFunctionPointers()->vkUpdateDescriptorSetsFn
 #define vkWaitForFences gpu::GetVulkanFunctionPointers()->vkWaitForFencesFn
 
+#define vkGetDeviceQueue2 gpu::GetVulkanFunctionPointers()->vkGetDeviceQueue2Fn
 #define vkGetImageMemoryRequirements2 \
   gpu::GetVulkanFunctionPointers()->vkGetImageMemoryRequirements2Fn
 
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
index 0aa5252..5d71809 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_am.xtb
@@ -21,7 +21,6 @@
 <translation id="3256316712990552818">ወደ Chromium ተቀድቷል</translation>
 <translation id="3605252743693911722">የእርስዎን ዕልባቶች፣ የይለፍ ቃላት እና በሁሉም የእርስዎ መሣሪያዎች ላይ ተጨማሪ ለማግኘት ወደ Chromium በመለያ ይግቡ።</translation>
 <translation id="3805899903892079518">Chromium የእርስዎ ፎቶዎች ወይም ቪዲዮዎች መዳረሻ የለውም። በiOS ቅንብሮች &gt; ግላዊነት &gt; ፎቶዎች ውስጥ መዳረሻን ያንቁ።</translation>
-<translation id="4157467675761413638">የChromium ጠቃሚ ምክር። ተጨማሪ የትር አማራጮችን ለማግኘት በመሣሪያ አሞሌው ውስጥ የትሮችን አሳይ አዝራሩን ተጭነው ይያዙ፣ ይህ በማያ ገጽዎ አናት ወይም ግርጌ ላይ ነው ያለው።</translation>
 <translation id="4241912885070669028">በ<ph name="SIGNOUT_MANAGED_DOMAIN" /> ከሚተዳደር መለያ ዘግተው እየወጡ ነው። ይሄ Chromium ውሂብዎን ከዚህ መሣሪያ ይሰርዘዋል፣ ነገር ግን ውሂብዎ አሁንም በእርስዎ የGoogle መለያ ውስጥ እንዳለ ይቆያል።</translation>
 <translation id="4555020257205549924">ይህ ባህሪ ሲበራ Chromium በሌሎች ቋንቋዎች የተጻፉ ገጾች Google ትርጉምን በመጠቀም እንዲተረጎምልዎ ይጠይቀዎታል። <ph name="BEGIN_LINK" />የበለጠ ለመረዳት<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">የChromium ቃኚን ያብሩ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
index 99c820b..200d1f0f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ar.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">‏تم النسخ إلى Chromium</translation>
 <translation id="3605252743693911722">‏سجّل الدخول إلى Chromium للحصول غلى الإشارات المرجعية وكلمات المرور والمزيد على جميع أجهزتك.</translation>
 <translation id="3805899903892079518">‏لا تتوفر لدى Chromium إمكانية الدخول إلى الصور أو الفيديوهات. تستطيع تفعيل الدخول في إعدادات نظام التشغيل iOS &gt; الخصوصية &gt; الصور.</translation>
-<translation id="4157467675761413638">‏نصيحة لاستخدام Chromium: لمزيد من خيارات علامات التبويب، يمكنك الضغط مع الاستمرار على الزر "عرض علامات التبويب" في شريط الأدوات الموجود أسفل الشاشة أو أعلاها.</translation>
 <translation id="4241912885070669028">‏أنت بصدد الخروج من حساب تتم إدارته من خلال <ph name="SIGNOUT_MANAGED_DOMAIN" />. سيؤدي ذلك إلى حذف بيانات Chromium من هذا الجهاز، ولكن ستظل البيانات في حسابك في Google.</translation>
 <translation id="4555020257205549924">‏عند تشغيل هذه الميزة، سيقترح Chromium ترجمة الصفحات المكتوبة بلغات أخرى باستخدام "ترجمة Google". <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">‏تفعيل الماسح الضوئي في Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
index 897f62b..006a5ee 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bg.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Копирано в Chromium</translation>
 <translation id="3605252743693911722">Влезте в Chromium, за да получите отметките, паролите и другите си неща на всичките си устройства.</translation>
 <translation id="3805899903892079518">Chromium няма достъп до снимките или видеоклиповете ви. Активирайте го от „Settings“ &gt; „Privacy“ &gt; „Photos“ в iOS.</translation>
-<translation id="4157467675761413638">Съвет за Chromium. За да видите още опции за разделите, натиснете и задръжте бутона „Показване на разделите“ в лентата с инструменти в долната или горната част на екрана.</translation>
 <translation id="4241912885070669028">Излизате от профил, управляван от <ph name="SIGNOUT_MANAGED_DOMAIN" />. Данните ви в Chromium ще се изтрият от това устройство, но ще останат в профила ви в Google.</translation>
 <translation id="4555020257205549924">Когато тази функция е включена, Chromium ще предлага да преведе страниците, написани на други езици, посредством Google Преводач. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Включване на скенера в Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
index 9666b38..ebd1d07 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_bn.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium-এ প্রতিলিপি করা হয়েছে</translation>
 <translation id="3605252743693911722">আপনার বুকমার্ক, পাসওয়ার্ড এবং অন্যান্য জিনিস আপনার সমস্ত ডিভাইসে পেতে Chromium-এ সাইন-ইন করুন।</translation>
 <translation id="3805899903892079518">আপনার ফটো এবং ভিডিওগুলিতে Chromium এর অ্যাক্সেস নেই৷ iOS সেটিংস &gt; গোপনীয়তা &gt; ফটোগুলিতে অ্যাক্সেস সক্ষম করুন৷</translation>
-<translation id="4157467675761413638">Chromium টিপ। ট্যাবে আরও বিকল্পের জন্য, আপনার স্ক্রিনের নিচে অথবা উপরে থাকা টুলবারে দেখানো ট্যাবটি প্রেস করে ধরে থাকুন।</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> পরিচালিত একটি অ্যাকাউন্ট থেকে আপনি সাইন-আউট করছেন৷ এটি এই ডিভাইস থেকে আপনার Chromium ডেটা মুছে ফেলবে, কিন্তু আপনার Google অ্যাকাউন্টে ডেটা থেকে যাবে৷</translation>
 <translation id="4555020257205549924">যখন এই বৈশিষ্ট্যটি চালু করা হয় তখন Chromium, Google অনুবাদ ব্যবহার করে অন্যান্য ভাষায় লিখিত পৃষ্ঠাগুলি অনুবাদ করার অফার করবে৷ <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium স্ক্যানার চালু করুন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
index bc3ddb2..5e9cf5f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ca.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiada a Chromium</translation>
 <translation id="3605252743693911722">Inicia la sessió a Chromium per accedir a les teves adreces d'interès, les contrasenyes i altres continguts des de tots els teus dispositius.</translation>
 <translation id="3805899903892079518">Chromium no té accés als vostres vídeos o fotos. Permeteu-li l'accés a iOS, a Configuració &gt; Privadesa &gt; Fotos.</translation>
-<translation id="4157467675761413638">Consell de Chromium. Per accedir a més opcions de pestanyes, mantén premut el botó Mostra pestanyes a la barra d'eines, que és a la part inferior o superior de la pantalla.</translation>
 <translation id="4241912885070669028">Estàs tancant la sessió d'un compte gestionat per <ph name="SIGNOUT_MANAGED_DOMAIN" />. Se suprimiran les teves dades de Chromium d'aquest dispositiu, però continuaran al teu compte de Google.</translation>
 <translation id="4555020257205549924">Quan aquesta funció està activada, Chromium ofereix la possibilitat de traduir pàgines escrites en altres idiomes mitjançant el Traductor de Google. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Activa l'escàner de Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
index 5313d81..6305ce6 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_cs.xtb
@@ -21,7 +21,6 @@
 <translation id="3256316712990552818">Zkopírováno do prohlížeče Chromium</translation>
 <translation id="3605252743693911722">Chcete-li mít své záložky, hesla a další obsah na všech zařízeních, přihlaste se do prohlížeče Chromium.</translation>
 <translation id="3805899903892079518">Chromium nemá přístup k vašim fotkám nebo videím. Povolte přístup v systému iOS v Nastavení &gt; Soukromí &gt; Fotky.</translation>
-<translation id="4157467675761413638">Tip pro Chromium. Další možnosti karet zobrazíte podržením tlačítka Zobrazit karty, které najdete v dolní nebo horní části obrazovky.</translation>
 <translation id="4241912885070669028">Odhlašujete se z účtu, který je spravován doménou <ph name="SIGNOUT_MANAGED_DOMAIN" />. Touto akcí svá data prohlížeče Chromium smažete z tohoto zařízení, ve vašem účtu Google však zůstanou.</translation>
 <translation id="4555020257205549924">Pokud je tato funkce zapnutá, bude Chromium nabízet překlad stránek v jiných jazycích pomocí Překladače Google.<ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Zapněte čtečku prohlížeče Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
index f21af1f..01f0f345 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_da.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopieret til Chromium</translation>
 <translation id="3605252743693911722">Log ind på Chromium for at få dine bogmærker, adgangskoder og meget mere på alle dine enheder.</translation>
 <translation id="3805899903892079518">Chromium har ikke adgang til dine billeder eller videoer. Gå til iOS Indstillinger &gt; Privatliv &gt; Billeder for at få adgang.</translation>
-<translation id="4157467675761413638">Chromium-tip. Hvis du vil se flere indstillinger for faner, skal du trykke på knappen Vis faner på værktøjslinjen nederst eller øverst på skærmen.</translation>
 <translation id="4241912885070669028">Du er ved at logge ud af en konto, der administreres af <ph name="SIGNOUT_MANAGED_DOMAIN" />. Denne handling sletter dine Chromium-data fra denne enhed, men dine data forbliver gemt på din Google-konto.</translation>
 <translation id="4555020257205549924">Når denne funktion er aktiveret, vil Chromium tilbyde at oversætte sider, der er skrevet på andre sprog, ved hjælp af Google Oversæt. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Aktivér Chromium-scanner</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
index 155ba6c..0e0d6a2 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_de.xtb
@@ -21,7 +21,6 @@
 <translation id="3256316712990552818">In Chromium kopiert</translation>
 <translation id="3605252743693911722">Melden Sie sich in Chromium an, um Daten wie Lesezeichen und Passwörter auf allen Ihren Geräten zu nutzen.</translation>
 <translation id="3805899903892079518">Chromium hat keinen Zugriff auf Ihre Fotos und Videos. Aktivieren Sie den Zugriff unter "iOS-Einstellungen &gt; Datenschutz &gt; Fotos".</translation>
-<translation id="4157467675761413638">Chromium-Tipp: Wenn Sie weitere Tab-Optionen sehen möchten, halten Sie die Schaltfläche "Tabs anzeigen" in der Symbolleiste gedrückt. Sie finden die Leiste unten oder oben auf dem Bildschirm.</translation>
 <translation id="4241912885070669028">Sie melden sich von einem Konto ab, das von <ph name="SIGNOUT_MANAGED_DOMAIN" /> verwaltet wird. Dadurch werden Ihre Chromium-Daten von diesem Gerät gelöscht, bleiben jedoch in Ihrem Google-Konto erhalten.</translation>
 <translation id="4555020257205549924">Wenn diese Funktion aktiviert ist, haben Sie in Chromium die Möglichkeit, Seiten in anderen Sprachen mithilfe von Google Übersetzer zu übersetzen. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium-Scanner aktivieren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
index 5336f62..36681f12 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_el.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Αντιγράφηκε στο Chromium</translation>
 <translation id="3605252743693911722">Συνδεθείτε στο Chromium, για να έχετε τους σελιδοδείκτες, τους κωδικούς πρόσβασης κ.ά. σε όλες τις συσκευές σας.</translation>
 <translation id="3805899903892079518">Το Chromium δεν έχει πρόσβαση σε φωτογραφίες ή βίντεό σας. Ενεργ. πρόσβασης στις Ρυθμίσεις iOS &gt; Απόρρητο &gt; Φωτογραφίες.</translation>
-<translation id="4157467675761413638">Συμβουλή για το Chromium. Για περισσότερες επιλογές για τις καρτέλες, πατήστε παρατεταμένα το κουμπί "Εμφάνιση καρτελών" στη γραμμή εργαλείων, η οποία βρίσκεται στο κάτω τμήμα ή στην κορυφή της οθόνης σας.</translation>
 <translation id="4241912885070669028">Πρόκειται να αποσυνδεθείτε από έναν λογαριασμό του οποίου η διαχείριση γίνεται από <ph name="SIGNOUT_MANAGED_DOMAIN" />. Αυτό θα διαγράψει τα δεδομένα σας Chromium από αυτήν τη συσκευή, αλλά θα διατηρηθούν στον Λογαριασμό σας Google.</translation>
 <translation id="4555020257205549924">Όταν αυτή η λειτουργία είναι ενεργοποιημένη, το Chromium θα προσφέρει τη μετάφραση σελίδων που είναι γραμμένες σε άλλες γλώσσες χρησιμοποιώντας τη Μετάφραση Google. <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Ενεργοποίηση σαρωτή Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
index fd670a6..3284d83 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_en-GB.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copied to Chromium</translation>
 <translation id="3605252743693911722">Sign in to Chromium to get your bookmarks, passwords and more on all your devices.</translation>
 <translation id="3805899903892079518">Chromium does not have access to your photos or videos. Enable access in iOS Settings &gt; Privacy &gt; Photos.</translation>
-<translation id="4157467675761413638">Chromium tip. For more tab options, press and hold the Show Tabs button in the toolbar, which is at the bottom or top of your screen.</translation>
 <translation id="4241912885070669028">You are signing out of an account managed by <ph name="SIGNOUT_MANAGED_DOMAIN" />. This will delete your Chromium data from this device, but your data will remain in your Google Account.</translation>
 <translation id="4555020257205549924">When this feature is turned on, Chromium will offer to translate pages written in other languages using Google Translate. <ph name="BEGIN_LINK" />Find out more<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Turn on Chromium scanner</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
index 86c61a4..17da9762 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_es-419.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Se copió en Chromium.</translation>
 <translation id="3605252743693911722">Accede a tu cuenta en Chromium para obtener tus favoritos, contraseñas y mucho más desde todos tus dispositivos.</translation>
 <translation id="3805899903892079518">Chromium no tiene acceso a tus fotos o videos. Habilita el acceso en Configuración de iOS &gt; Privacidad &gt; Fotos.</translation>
-<translation id="4157467675761413638">Sugerencia de Chromium: Para obtener más opciones de pestañas, mantén presionado el botón Mostrar pestañas de la barra de herramientas, que se encuentra en la parte inferior o superior de la pantalla.</translation>
 <translation id="4241912885070669028">Estás saliendo de una cuenta que administra <ph name="SIGNOUT_MANAGED_DOMAIN" />. Con esta acción, tus datos de Chromium se borrarán en este dispositivo, pero permanecerán en tu cuenta de Google.</translation>
 <translation id="4555020257205549924">Si activas esta función, Chromium te preguntará si deseas usar Google Traductor para traducir páginas en otros idiomas. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Activar el escáner de Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
index 5b978e0..88a92d7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_es.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiada a Chromium</translation>
 <translation id="3605252743693911722">Inicia sesión en Chromium para sincronizar los marcadores, las contraseñas y mucho más en todos tus dispositivos.</translation>
 <translation id="3805899903892079518">Chromium no puede acceder a tus fotos y vídeos (para permitirlo, ve a Ajustes de iOS &gt; Privacidad &gt; Fotos).</translation>
-<translation id="4157467675761413638">Consejo sobre Chromium. Para ver más opciones de pestañas, mantén pulsado el botón Mostrar pestañas en la barra de herramientas, que se encuentra en la parte inferior o superior de la pantalla.</translation>
 <translation id="4241912885070669028">Estás cerrando sesión en una cuenta gestionada por <ph name="SIGNOUT_MANAGED_DOMAIN" />. Tus datos de Chromium se eliminarán de este dispositivo, pero permanecerán en tu cuenta de Google.</translation>
 <translation id="4555020257205549924">Si esta función está activada, Chromium ofrecerá la posibilidad de traducir páginas escritas en otros idiomas con el Traductor de Google. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Activar el escáner de Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
index 44976c40..9d28d9e 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_et.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopeeritud Chromiumi</translation>
 <translation id="3605252743693911722">Logige Chromiumi sisse, et kõikides oma seadmetes kasutada järjehoidjaid, paroole ja muud.</translation>
 <translation id="3805899903892079518">Chromiumil pole juurdepääsu fotodele ega videotele. Lubage iOS-is juurdepääs valikutega Seaded &gt; Privaatsus &gt; Fotod.</translation>
-<translation id="4157467675761413638">Chromiumi nõuanne. Vahelehtede muude valikute vaatamiseks hoidke all ekraani üla- või alaosas tööriistaribal olevat nuppu Kuva vahelehed.</translation>
 <translation id="4241912885070669028">Logite välja kontolt, mida haldab <ph name="SIGNOUT_MANAGED_DOMAIN" />. Selle tulemusel kustutatakse seadmes olevad Chromiumi andmed, kuid need jäävad alles teie Google'i kontole.</translation>
 <translation id="4555020257205549924">Kui see funktsioon on sisse lülitatud, pakub Chromium võimalust tõlkida teistes keeltes kirjutatud lehti Google'i tõlke abil. <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Lülitage sisse Chromiumi skanner</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
index f7aff9c..0856bef 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fa.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">‏به Chromium کپی شد</translation>
 <translation id="3605252743693911722">‏برای دریافت نشانک‌ها، گذرواژه‌ها و موارد دیگر در همه دستگاه‌هایتان، به سیستم Chromium وارد شوید.</translation>
 <translation id="3805899903892079518">‏Chromium به عکس‌ها یا ویدیوهای شما دسترسی ندارد. با رفتن به تنظیمات iOS &gt; حریم خصوصی &gt; عکس‌ها دسترسی را فعال کنید.</translation>
-<translation id="4157467675761413638">‏نکته Chromium. برای دیدن گزینه‌های بیشتر برگه، دکمه «نمایش برگه‌ها» را در نوارابزار (در پایین یا بالای صفحه است) فشار دهید و نگه دارید.</translation>
 <translation id="4241912885070669028">‏هم‌اکنون درحال خارج شدن از حسابی هستید که توسط <ph name="SIGNOUT_MANAGED_DOMAIN" /> مدیریت می‌شود. با این کار، داده‌های Chromium شما از این دستگاه حذف می‌شوند اما همچنان در حساب Google شما باقی می‌مانند.</translation>
 <translation id="4555020257205549924">‏وقتی این قابلیت روشن است، Chromium ترجمه صفحات نوشته‌شده به سایر زبان‌ها را با استفاده از مترجم Google پیشنهاد می‌دهد. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">‏روشن کردن اسکنر Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
index 81acc66..bd8bd22 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fi.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopioitiin Chromiumiin.</translation>
 <translation id="3605252743693911722">Kirjaudu sisään Chromiumiin, jotta voit käyttää kirjanmerkkejäsi, salasanojasi ja muita asetuksiasi kaikilla laitteillasi.</translation>
 <translation id="3805899903892079518">Chromium ei voi käyttää kuviasi tai videoitasi. Anna käyttöoikeus kohdassa iOS-asetukset &gt; Tietosuoja &gt; Kuvat.</translation>
-<translation id="4157467675761413638">Chromium-vinkki: Voit avata välilehtien lisäasetukset painamalla ylä- tai alapalkissa olevaa Näytä välilehdet ‑painiketta pitkään.</translation>
 <translation id="4241912885070669028">Olet kirjautumassa ulos verkkotunnuksen <ph name="SIGNOUT_MANAGED_DOMAIN" /> hallitsemalta tililtä. Chromium-tietosi poistetaan tältä laitteelta, mutta tietosi säilyvät Google-tililläsi.</translation>
 <translation id="4555020257205549924">Kun tämä ominaisuus on käytössä, Chromium tarjoaa vierailla kielillä kirjoitettujen sivujen käännöksiä Google Kääntäjän kautta. <ph name="BEGIN_LINK" />Lisätietoja<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Ota käyttöön Chromium-lukija</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
index b626082..8adc3a7 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fil.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kinopya sa Chromium</translation>
 <translation id="3605252743693911722">Mag-sign in sa Chromium upang makuha ang iyong mga bookmark, password, at higit pa sa lahat ng device mo.</translation>
 <translation id="3805899903892079518">Walang access ang Chromium sa mga larawan o video mo. I-enable ang access sa Mga Setting ng iOS &gt; Privacy &gt; Mga Larawan.</translation>
-<translation id="4157467675761413638">Tip sa Chromium. Para sa higit pang opsyon sa tab, pindutin nang matagal ang button na Ipakita ang Mga Tab sa toolbar, na nasa ibaba o itaas ng iyong screen.</translation>
 <translation id="4241912885070669028">Nagsa-sign out ka sa account na pinamamahalaan ng <ph name="SIGNOUT_MANAGED_DOMAIN" />. Ide-delete nito ang data mo sa Chromium sa device na ito, ngunit mananatili ang data mo sa iyong Google account.</translation>
 <translation id="4555020257205549924">Kapag naka-on ang feature na ito, mag-aalok ang Chromium na magsalin ng mga page na nakasulat sa ibang mga wika gamit ang Google Translate. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">I-on ang scanner ng Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
index 910407f5..8e3ae28 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_fr.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copié dans Chromium</translation>
 <translation id="3605252743693911722">Connectez-vous à Chromium pour accéder à vos favoris, mots de passe et bien plus sur tous vos appareils.</translation>
 <translation id="3805899903892079518">Chromium n'a pas accès à vos photos ni à vos vidéos. Activez l'accès dans iOS via Réglages &gt; Confidentialité &gt; Photos.</translation>
-<translation id="4157467675761413638">Astuce Chromium. Pour afficher plus d'options de l'onglet, appuyez de manière prolongée sur le bouton "Afficher les onglets" situé dans la barre d'outils affichée dans la partie inférieure ou supérieure de l'écran.</translation>
 <translation id="4241912885070669028">Vous vous déconnectez d'un compte géré par <ph name="SIGNOUT_MANAGED_DOMAIN" />. Cette opération entraînera la suppression de vos données Chromium de cet appareil, mais celles-ci seront conservées dans votre compte Google.</translation>
 <translation id="4555020257205549924">Lorsque cette fonctionnalité est activée dans Chromium, un message s'affiche pour vous proposer que les pages de ce site rédigées dans d'autres langues soient traduites à l'aide de Google Traduction. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Activer le lecteur Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
index 97b70883..447acd0 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_gu.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium પર કૉપી કરી</translation>
 <translation id="3605252743693911722">તમારા બધા ઉપકરણો પર તમારા બુકમાર્ક, પાસવર્ડ અને બીજુ ઘણું મેળવવા માટે Chromiumમાં સાઇન ઇન કરો.</translation>
 <translation id="3805899903892079518">Chromiumને તમારા ફોટા અથવા વીડિયોનો ઍક્સેસ નથી. iOS સેટિંગ &gt; પ્રાઇવસી &gt; ફોટામાં ઍક્સેસને ચાલુ કરો.</translation>
-<translation id="4157467675761413638">Chromium ટિપ. વધુ ટૅબ વિકલ્પો માટે, તમારી સ્ક્રીનના તળિયે અથવા ટોચે આવેલા ટૂલબારમાંના 'ટૅબ બતાવો' બટનને દબાવી રાખો.</translation>
 <translation id="4241912885070669028">તમે <ph name="SIGNOUT_MANAGED_DOMAIN" /> દ્વારા મેનેજ એકાઉન્ટમાંથી સાઇન આઉટ કરી રહ્યાં છો. આ તમારા Chromium ડેટાને આ ડિવાઇસમાંથી ડિલીટ કરશે, પરંતુ તમારો ડેટા તમારા Google એકાઉન્ટમાં રહેશે.</translation>
 <translation id="4555020257205549924">જ્યારે આ સુવિધા ચાલુ કરી હોય, ત્યારે Chromium, Google અનુવાદનો ઉપયોગ કરીને અન્ય ભાષાઓમાં લખેલા પૃષ્ઠોના અનુવાદની ઓફર કરશે. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium સ્કૅન ચાલુ કરો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
index ace8621..ae5b3ad 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hi.xtb
@@ -21,7 +21,6 @@
 <translation id="3256316712990552818">क्रोमियम पर कॉपी किया गया</translation>
 <translation id="3605252743693911722">अपने सभी डिवाइस पर बुकमार्क, पासवर्ड और ज़्यादा चीज़ें पाने के लिए क्रोमियम में साइन इन करें.</translation>
 <translation id="3805899903892079518">Chromium के पास आपकी फ़ोटो या वीडियो का एक्सेस नहीं है. iOS सेटिंग &gt; गोपनीयता &gt; फ़ोटो में एक्सेस चालू करें.</translation>
-<translation id="4157467675761413638">क्रोमियम के लिए सलाह. ज़्यादा टैब विकल्पोंं के लिए, टूलबार में 'टैब दिखाएं' बटन को दबाकर रखें, जो आपकी स्क्रीन में सबसे नीचे या सबसे ऊपर होगा.</translation>
 <translation id="4241912885070669028">आप <ph name="SIGNOUT_MANAGED_DOMAIN" /> से प्रबंधित खाते से साइन ऑउट कर रहे हैं. इससे आपका क्रोमियम डेटा इस डिवाइस से मिट जाएगा, लेकिन आपका डेटा आपके Google खाते में बना रहेगा.</translation>
 <translation id="4555020257205549924">जब यह सुविधा चालू होती है, तो क्रोमियम अन्य भाषा में लिखे पृष्ठों को Google अनुवाद का उपयोग करके अनुवाद करने के लिए ऑफ़र करेगा. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">अपना क्रोमियम स्कैनर चालू करें</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
index 623bc6b..ba80d30 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hr.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopirano na Chromium</translation>
 <translation id="3605252743693911722">Prijavite se na Chromium kako bi ste mogli pristupati oznakama, zaporkama i ostalom na svim svojim uređajima.</translation>
 <translation id="3805899903892079518">Chromium nema pristup fotografijama ni videozapisima. Omogućite pristup u Postavkama iOS-a &gt; Privatnost &gt; Fotografije.</translation>
-<translation id="4157467675761413638">Savjet za Chromium. Za više opcija kartice pritisnite i držite gumb Prikaži kartice na alatnoj traci pri dnu ili vrhu zaslona.</translation>
 <translation id="4241912885070669028">Odjavljujete se s računa kojim upravlja <ph name="SIGNOUT_MANAGED_DOMAIN" />. Vaši podaci na Chromiumu izbrisat će se s ovog uređaja, no ostat će na vašem Google računu.</translation>
 <translation id="4555020257205549924">Kada je ta značajka uključena, Chromium će ponuditi prijevod stranica napisanih na drugim jezicima pomoću Google prevoditelja. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Uključite Chromiumov skener</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
index fbd0a65..c5c5ab1 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_hu.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">A Chromiumra másolva</translation>
 <translation id="3605252743693911722">Jelentkezzen be a Chromiumba, hogy az összes eszközén hozzáférhessen könyvjelzőihez, jelszavaihoz és más beállításaihoz.</translation>
 <translation id="3805899903892079518">A Chromium nem fér hozzá az Ön képeihez és videóihoz. Engedélyezés iOS-en: Beállítások &gt; Adatvédelem &gt; Fényképek.</translation>
-<translation id="4157467675761413638">Tipp a Chromium használatához. A további lapbeállításokhoz tartsa lenyomva az eszköztárban lévő Lapok megjelenítése gombot, amely a képernyő alsó vagy felső részén található.</translation>
 <translation id="4241912885070669028">Kijelentkezik egy <ph name="SIGNOUT_MANAGED_DOMAIN" /> által felügyelt fiókból. Ezzel törli az eszközön található Chromium-adatokat, amelyek azonban Google-fiókjában megmaradnak.</translation>
 <translation id="4555020257205549924">Ha a funkció be van kapcsolva, a Chromium felajánlja a más nyelveken írt oldalak lefordítását a Google Fordító segítségével. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" />.</translation>
 <translation id="4681781466797808448">Kapcsolja be a Chromium szkennerét</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
index 9f257ec..e23f5c55 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_id.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Disalin ke Chromium</translation>
 <translation id="3605252743693911722">Login ke Chromium untuk mendapatkan bookmark, sandi, dan lainnya di semua perangkat Anda.</translation>
 <translation id="3805899903892079518">Chromium tidak memiliki akses ke foto atau video Anda. Izinkan akses di iOS Settings &gt; Privacy &gt; Photos.</translation>
-<translation id="4157467675761413638">Tips Chromium. Untuk opsi tab lainnya, tekan dan tahan tombol Tampilkan Tab di toolbar, yang terdapat di bagian bawah atau atas layar.</translation>
 <translation id="4241912885070669028">Anda keluar dari akun yang dikelola oleh <ph name="SIGNOUT_MANAGED_DOMAIN" />. Tindakan ini akan menghapus data Chromium dari perangkat, namun data Anda akan tetap tersedia di Akun Google.</translation>
 <translation id="4555020257205549924">Saat fitur ini diaktifkan, Chromium akan menawarkan untuk menerjemahkan halaman yang ditulis dalam bahasa lain menggunakan Google Terjemahan. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Aktifkan pemindai Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
index ae8121a..ccc011b 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_it.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiata in Chromium</translation>
 <translation id="3605252743693911722">Accedi a Chromium per trovare i tuoi preferiti, le password e altre impostazioni su tutti i tuoi dispositivi.</translation>
 <translation id="3805899903892079518">Chromium non ha accesso alle tue foto o ai tuoi video. Attiva l'accesso in Impostazioni iOS &gt; Privacy &gt; Foto.</translation>
-<translation id="4157467675761413638">Suggerimento per Chromium. Per vedere più opzioni sulla scheda, tieni premuto il pulsante Mostra schede della barra degli strumenti, che si trova nella parte inferiore o superiore della schermata.</translation>
 <translation id="4241912885070669028">Stai per uscire da un account gestito da <ph name="SIGNOUT_MANAGED_DOMAIN" />. I dati di Chromium verranno eliminati da questo dispositivo, ma rimarranno memorizzati nel tuo Account Google.</translation>
 <translation id="4555020257205549924">Quando questa funzione è attiva, Chromium si offre di tradurre le pagine scritte in altre lingue utilizzando Google Traduttore. <ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Attiva lo scanner di Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
index ab64e4d..43ff0d5 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_iw.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">‏הועתק אל Chromium</translation>
 <translation id="3605252743693911722">‏יש להיכנס אל Chromium כדי לקבל גישה אל הסימניות, הסיסמאות ונתונים נוספים בכל המכשירים שלך.</translation>
 <translation id="3805899903892079518">‏ל-Chromium אין גישה לתמונות או לסרטונים שלך. אפשר גישה ב'הגדרות iOS' &gt; 'פרטיות' &gt; 'תמונות'.</translation>
-<translation id="4157467675761413638">‏טיפ למשתמשי Chromium. כדי לקבל יותר אפשרויות של כרטיסיות, יש ללחוץ לחיצה ארוכה על הלחצן 'הצגת כרטיסיות' בסרגל הכלים, שנמצא בחלק התחתון או העליון של המסך.</translation>
 <translation id="4241912885070669028">‏אתה יוצא מחשבון המנוהל על-ידי <ph name="SIGNOUT_MANAGED_DOMAIN" />. פעולה זו תמחק את הנתונים שלך ב-Chromium מהמכשיר הזה, אבל הם יישארו בחשבון Google שלך.</translation>
 <translation id="4555020257205549924">‏כשהתכונה הזו פועלת, Chromium יציע לתרגם באמצעות Google Translate דפים שנכתבו בשפות אחרות‏. <ph name="BEGIN_LINK" />למידע נוסף<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">‏הפעלת הסורק של Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
index c512c242..fdc5c8c 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ja.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium にコピー済み</translation>
 <translation id="3605252743693911722">Chromium にログインすれば、ブックマーク、パスワード、その他の設定をどのデバイスからでもご利用いただけます。</translation>
 <translation id="3805899903892079518">Chromium で写真または動画にアクセスできません。iOS の [設定] &gt; [プライバシー] &gt; [写真] でアクセスを有効にしてください。</translation>
-<translation id="4157467675761413638">Chromium の使い方のヒント: タブのオプションをさらに表示するには、画面の下部または上部のツールバーにある [タブを表示] を押し続けます。</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> で管理されているアカウントからログアウトしようとしています。ログアウトすると、Chromium データはこのデバイスから削除されますが、Google アカウントには残ります。</translation>
 <translation id="4555020257205549924">この機能を有効にすると、外国語のページを開いたときに翻訳ツールが表示されます。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium のスキャナをオンにしてください</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
index 459c141..d04dc8f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_kn.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium ಗೆ ನಕಲಿಸಲಾಗಿದೆ</translation>
 <translation id="3605252743693911722">ನಿಮ್ಮ ಬುಕ್‌ಮಾರ್ಕ್‌ಗಳು, ಪಾಸ್‌ವರ್ಡ್‌ಗಳು ಮತ್ತು ಇನ್ನಷ್ಟನ್ನು ನಿಮ್ಮ ಎಲ್ಲಾ ಸಾಧನಗಳಲ್ಲಿ ಪಡೆದುಕೊಳ್ಳಲು Chromium ಗೆ ಸೈನ್ ಇನ್ ಮಾಡಿ.</translation>
 <translation id="3805899903892079518">Chromium ನಿಮ್ಮ ಫೋಟೋಗಳು ಮತ್ತು ವೀಡಿಯೋಗಳಿಗೆ ಪ್ರವೇಶವನ್ನು ಹೊಂದಿಲ್ಲ. iOS ಸೆಟ್ಟಿಂಗ್‌ಗಳು &gt; ಗೌಪ್ಯತೆ &gt; ಫೋಟೋಗಳಲ್ಲಿ ಪ್ರವೇಶವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ.</translation>
-<translation id="4157467675761413638">Chromium ಸಲಹೆ. ಇನ್ನಷ್ಟು ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗಾಗಿ, ನಿಮ್ಮ ಪರದೆಯ ಕೆಳಭಾಗದಲ್ಲಿ ಅಥವಾ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ ಪರಿಕರಪಟ್ಟಿಯಲ್ಲಿ, ಟ್ಯಾಬ್‌ಗಳನ್ನು ತೋರಿಸಿ ಬಟನ್ ಅನ್ನು ಒತ್ತಿಹಿಡಿಯಿರಿ.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> ಮೂಲಕ ನಿರ್ವಹಿಸಲಾದ ಖಾತೆಯಿಂದ ನೀವು ಸೈನ್ ಔಟ್ ಮಾಡುತ್ತಿರುವಿರಿ. ಇದು ಈ ಸಾಧನದಿಂದ ನಿಮ್ಮ Chromium ಡೇಟಾವನ್ನು ಅಳಿಸುತ್ತದೆ, ಆದರೆ ನಿಮ್ಮ ಡೇಟಾ ನಿಮ್ಮ Google ಖಾತೆಯಲ್ಲಿಯೇ ಇರುತ್ತದೆ.</translation>
 <translation id="4555020257205549924">ಈ ವೈಶಿಷ್ಟ್ಯವನ್ನು ಆನ್ ಮಾಡಿದಾಗ, Google ಅನುವಾದ ಬಳಸಿಕೊಂಡು ಬೇರೆ ಭಾಷೆಗಳಲ್ಲಿ ಬರೆದ ಪುಟಗಳನ್ನು ಅನುವಾದಿಸಲು Chromium ಅವಕಾಶ ನೀಡುತ್ತದೆ. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium ಸ್ಕ್ಯಾನರ್ ಆನ್ ಮಾಡಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
index 43154fa..e7b357a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ko.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium에 복사됨</translation>
 <translation id="3605252743693911722">Chromium에 로그인하여 모든 기기에서 내 북마크, 비밀번호 등을 사용하세요.</translation>
 <translation id="3805899903892079518">Chromium에서 사진 또는 동영상에 액세스할 수 없습니다. 'iOS 설정 &gt; 개인정보 보호 &gt; 사진'에서 액세스를 허용하세요.</translation>
-<translation id="4157467675761413638">Chromium 도움말. 더 많은 탭 옵션을 보려면 화면 하단이나 상단에 있는 툴바에서 탭 표시 버튼을 길게 누릅니다.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" />에서 관리하는 계정에서 로그아웃합니다. 이렇게 하면 내 Chromium 데이터가 이 기기에서 삭제되지만 Google 계정에는 그대로 유지됩니다.</translation>
 <translation id="4555020257205549924">이 기능을 사용하면 Chromium에서 Google 번역을 사용하여 외국어로 작성된 페이지를 번역합니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium 스캐너 사용</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
index 2cc3807..b7c33aeb 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lt.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Nukopijuota į „Chromium“</translation>
 <translation id="3605252743693911722">Prisijunkite prie „Chromium“, kad galėtumėte naudoti žymes, slaptažodžius ir kitus nustatymus visuose įrenginiuose.</translation>
 <translation id="3805899903892079518">„Chromium“ nepasiekia nuotraukų ar vaizdo įr. Įgalinkite prieigą apsil. „iOS“ nustatymai“ &gt; „Privatumas“ &gt; „Nuotraukos“.</translation>
-<translation id="4157467675761413638">„Chromium“ patarimas. Jei reikia daugiau skirtukų parinkčių, paspauskite ir palaikykite mygtuką „Rodyti skirtukus“ įrankių juostoje, kuri yra ekrano apačioje arba viršuje.</translation>
 <translation id="4241912885070669028">Atsijungiate nuo paskyros, kurią valdo <ph name="SIGNOUT_MANAGED_DOMAIN" />. „Chromium“ duomenys bus ištrinti iš šio įrenginio, bet liks „Google“ paskyroje.</translation>
 <translation id="4555020257205549924">Kai ši funkcija bus įjungta, „Chromium“ siūlys versti kitomis kalbomis parašytus puslapius naudojant „Google“ vertėją. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Įjunkite „Chromium“ skaitytuvą</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
index 05de74e0..f82f377 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_lv.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Nokopēta pārlūkā Chromium</translation>
 <translation id="3605252743693911722">Pierakstieties pārlūkā Chromium, lai iegūtu savas grāmatzīmes, paroles un citu saturu visās savās ierīcēs.</translation>
 <translation id="3805899903892079518">Chromium nevar piekļūt jūsu fotoattēliem un videoklipiem. Iespējojiet piekļuvi: iOS Settings &gt; Privacy &gt; Photos.</translation>
-<translation id="4157467675761413638">Chromium padoms. Lai iegūtu vairāk ciļņu iespēju, rīkjoslā, kas atrodas ekrāna apakšdaļā vai augšdaļā, nospiediet un turiet pogu Rādīt cilnes.</translation>
 <translation id="4241912885070669028">Jūs izrakstāties no konta, kas tiek pārvaldīts domēnā <ph name="SIGNOUT_MANAGED_DOMAIN" />. Izrakstoties Chromium dati tiks dzēsti no šīs ierīces, taču tie paliks jūsu Google kontā.</translation>
 <translation id="4555020257205549924">Ja šī funkcija ir ieslēgta, Chromium piedāvā tulkot citās valodās rakstītas lapas, izmantojot Google tulkotāju. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
 <translation id="4681781466797808448">Ieslēgt Chromium skeneri</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
index b537304..e434c35 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ml.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium-ലേക്ക് പകർത്തി</translation>
 <translation id="3605252743693911722">നിങ്ങളുടെ ബുക്ക്‌മാർക്കുകളും  ‌പാസ്‌വേഡുകളും മറ്റും എല്ലാ ഉപകരണങ്ങളിലും ലഭ്യമാക്കുന്നതിന് Chromium-ൽ സൈൻ ഇൻ ചെയ്യുക.</translation>
 <translation id="3805899903892079518">Chromium-ത്തിന് നിങ്ങളുടെ ഫോട്ടോകളിലേക്കോ വീഡിയോകളിലേക്കോ ആക്‌സസ് ഇല്ല. iOS ക്രമീകരണം &gt; സ്വകാര്യത &gt; ഫോട്ടോകൾ എന്നതിൽ ആക്‌സസ് പ്രവർത്തനക്ഷമമാക്കുക.</translation>
-<translation id="4157467675761413638">Chromium നുറുങ്ങ്. കൂടുതൽ ടാബ് ഓപ്ഷനുകൾക്കായി, നിങ്ങളുടെ സ്‌ക്രീനിന്റെ താഴെയോ മുകളിലോ ഉള്ള, ടൂൾബാറിലെ 'ടാബ് കാണിക്കുക' ബട്ടൺ അമർത്തിപ്പിടിക്കുക.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> മാനേജ് ചെയ്യുന്ന അക്കൗണ്ടിൽ നിന്നും നിങ്ങൾ സൈൻ ഔട്ട് ചെയ്യുകയാണ്. ഇത് ഈ ഉപകരണത്തിൽ നിന്ന് നിങ്ങളുടെ Chromium വിവരങ്ങൾ ഇല്ലാതാക്കുമെങ്കിലും, Google അക്കൗണ്ടിൽ തുടർന്നും അവ ഉണ്ടായിരിക്കുന്നതാണ്.</translation>
 <translation id="4555020257205549924">ഈ ഫീച്ചർ ഓണായിരിക്കുമ്പോൾ, മറ്റ് ഭാഷകളിൽ എഴുതിയിരിക്കുന്ന പേജുകൾ Google വിവർത്തനം ഉപയോഗിച്ച് വിവർത്തനം ചെയ്യുന്നത് Chromium ഓഫർ ചെയ്യും. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium സ്‌കാനർ ഓണാക്കുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
index ea4c973..2e91889 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_mr.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium वर कॉपी केले</translation>
 <translation id="3605252743693911722">तुमच्या सर्व डिव्हाइसवर तुमचे बुकमार्क, पासवर्ड आणि अधिक मिळवण्यासाठी Chromiumमध्ये साइन इन करा.</translation>
 <translation id="3805899903892079518">Chromium ला तुमच्या फोटो किंवा व्हिडिओ अॅक्सेस नाही. iOS सेटिंग्ज&gt; गोपनीयता&gt; फोटो  अॅक्सेस सक्षम करा.</translation>
-<translation id="4157467675761413638">Chromium टीप. अधिक टॅब पर्यायांसाठी, टूलबारवरील टॅब बटण दाखवा दाबा आणि धरून ठेवा, जे तुमच्या स्क्रीनच्या खाली किंवा सर्वात वर असते.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> द्वारे व्यवस्थापित केलेल्या खात्यामधून तुम्ही साइन आउट करीत आहात. हे तुमचा Chromium डेटा या डिव्हाइस वरून हटवेल परंतु तुमचा डेटा आपल्या Google खात्यामध्ये असेल.</translation>
 <translation id="4555020257205549924">हे वैशिष्ट्य चालू केल्यावर, Chromium Google भाषांतर वापरून अन्य भाषामध्ये लिहिलेल्या पृष्ठांचा भाषांतर ऑफर करेल. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium स्कॅनर सुरू करा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
index 64225f1..a78c69dd 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ms.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Disalin ke Chromium</translation>
 <translation id="3605252743693911722">Log masuk ke Chromium untuk mendapatkan penanda halaman, kata laluan anda dan pelbagai lagi pada semua peranti anda.</translation>
 <translation id="3805899903892079518">Chromium tidak mempunyai akses kepada foto atau video anda. Dayakan akses dalam Tetapan iOS &gt; Privasi &gt; Foto.</translation>
-<translation id="4157467675761413638">Petua Chromium. Untuk melihat lebih banyak pilihan tab, tekan dan tahan butang Tunjukkan Tab dalam bar alat, yang terletak di bahagian bawah atau atas skrin anda.</translation>
 <translation id="4241912885070669028">Anda mengelog keluar daripada akaun yang diurus oleh <ph name="SIGNOUT_MANAGED_DOMAIN" />. Tindakan ini akan memadamkan data Chromium anda daripada peranti ini, tetapi data anda akan kekal dalam akaun Google anda.</translation>
 <translation id="4555020257205549924">Apabila ciri ini dihidupkan, Chromium akan menawarkan untuk menterjemah halaman yang ditulis dalam bahasa lain menggunakan Terjemahan Google. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Hidupkan pengimbas Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
index 68a8117..1ea6630 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_nl.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Gekopieerd naar Chromium</translation>
 <translation id="3605252743693911722">Log in bij Chromium om je bladwijzers, wachtwoorden en meer op al je apparaten te gebruiken.</translation>
 <translation id="3805899903892079518">Chromium heeft geen toegang tot je foto's of video's. Schakel toegang in via iOS-instellingen &gt; Privacy &gt; Foto's.</translation>
-<translation id="4157467675761413638">Chromium-tip. Voor meer tabbladopties tik je, op de werkbalk onder- of bovenaan het scherm, op de knop 'Tabbladen weergeven' en houd je deze knop vast.</translation>
 <translation id="4241912885070669028">Je logt uit van een account dat wordt beheerd door <ph name="SIGNOUT_MANAGED_DOMAIN" />. Hierdoor worden je Chromium-gegevens verwijderd van dit apparaat. Je gegevens blijven echter opgeslagen in je Google-account.</translation>
 <translation id="4555020257205549924">Als deze functie is ingeschakeld, biedt Chromium aan pagina's die zijn geschreven in andere talen te vertalen met Google Translate. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium-scanner inschakelen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
index 15efda6..39076a1 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_no.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopiert til Chromium</translation>
 <translation id="3605252743693911722">Logg på Chromium for å hente blant annet bokmerkene og passordene dine på alle enhetene du bruker.</translation>
 <translation id="3805899903892079518">Chromium har ikke tilgang til bildene eller videoene dine. Slå på tilgangen i iOS-innstillingene &gt; Personvern &gt; Bilder.</translation>
-<translation id="4157467675761413638">Chromium-tips. For flere fanealternativer, trykk og hold Vis fane-knappen i verktøylinjen, som du finner nederst eller øverst på skjermen.</translation>
 <translation id="4241912885070669028">Du logger av en konto som administreres av <ph name="SIGNOUT_MANAGED_DOMAIN" />. Dette fører til at Chromium-dataene dine slettes fra denne enheten, men de blir værende i Google-kontoen din.</translation>
 <translation id="4555020257205549924">Når denne funksjonen er slått på, tilbyr Chromium å oversette sider som er skrevet på andre språk, ved hjelp av Google Oversetter. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Slå på Chromium-skanneren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
index af525a5..3d6b26f 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pl.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Skopiowana do Chromium</translation>
 <translation id="3605252743693911722">Zaloguj się w Chromium, by mieć dostęp do swoich zakładek, haseł i innych ustawień na wszystkich swoich urządzeniach.</translation>
 <translation id="3805899903892079518">Chromium nie ma dostępu do Twoich zdjęć ani filmów. Aby włączyć dostęp w iOS, wybierz Ustawienia &gt; Prywatność &gt; Zdjęcia.</translation>
-<translation id="4157467675761413638">Wskazówka dla użytkowników Chromium. Aby zobaczyć więcej opcji kart, naciśnij i przytrzymaj przycisk Pokaż karty na pasku narzędzi, który znajduje się na dole lub na górze ekranu.</translation>
 <translation id="4241912885070669028">Wylogowujesz się z konta, którym zarządza <ph name="SIGNOUT_MANAGED_DOMAIN" />. Spowoduje to usunięcie danych Chromium z tego urządzenia, ale pozostaną one na koncie Google.</translation>
 <translation id="4555020257205549924">Gdy ta funkcja jest włączona, Chromium oferuje tłumaczenie stron w innych językach przy użyciu Tłumacza Google. <ph name="BEGIN_LINK" />Więcej informacji<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Włącz skaner Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
index 4bb4ae58..60191345 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-BR.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiado no Chromium</translation>
 <translation id="3605252743693911722">Faça login no Chromium para ver seus favoritos, senhas e muito mais em todos os seus dispositivos.</translation>
 <translation id="3805899903892079518">O Chromium não têm acesso às suas fotos ou seus vídeos. Permita o acesso em "Configurações do iOS" &gt; "Privacidade" &gt; "Fotos".</translation>
-<translation id="4157467675761413638">Dica do Chromium. Para ver mais opções de guias, toque no botão "Exibir guias" na barra de ferramentas, na parte superior ou inferior da tela, e mantenha-o pressionado.</translation>
 <translation id="4241912885070669028">Você está saindo de uma conta gerenciada por <ph name="SIGNOUT_MANAGED_DOMAIN" />. Os dados do Chromium serão excluídos deste dispositivo, mas permanecerão na sua Conta do Google.</translation>
 <translation id="4555020257205549924">Quando este recurso está ativado, o Chromium oferece a tradução de páginas escritas em outros idiomas usando o Google Tradutor. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Ativar o leitor do Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
index 33c982d..99be6a9 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_pt-PT.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiado para o Chromium</translation>
 <translation id="3605252743693911722">Inicie sessão no Chromium para obter os seus marcadores, palavras-passe e muito mais em todos os dispositivos.</translation>
 <translation id="3805899903892079518">O Chromium não tem acesso aos seus vídeos ou fotos. Ative o acesso nas Definições do iOS &gt; Privacidade &gt; Fotos.</translation>
-<translation id="4157467675761413638">Sugestão para o Chromium: para obter mais opções de separadores, prima sem soltar o botão Mostrar separadores na barra de ferramentas, que se encontra na parte superior ou inferior do ecrã.</translation>
 <translation id="4241912885070669028">Está a terminar sessão numa conta gerida por <ph name="SIGNOUT_MANAGED_DOMAIN" />. Esta ação elimina os seus dados do Chromium deste dispositivo, embora permaneçam na Conta Google.</translation>
 <translation id="4555020257205549924">Se esta funcionalidade estiver ativada, o Chromium oferecer-se-á para traduzir páginas escritas noutros idiomas com o Google Tradutor. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Ative o leitor do Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
index 712aa1f..ab188d7d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ro.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Copiat în Chromium</translation>
 <translation id="3605252743693911722">Conectează-te la Chromium pentru a accesa marcajele, parolele și altele pe toate dispozitivele tale.</translation>
 <translation id="3805899903892079518">Chromium nu are acces la fotografii și videoclipuri. Activează accesul din Setări iOS &gt; Confidențialitate &gt; Fotografii.</translation>
-<translation id="4157467675761413638">Sfat pentru Chromium: pentru mai multe opțiuni de file, apasă lung butonul Afișează filele din bara de instrumente, care se află în partea de sus sau de jos a ecranului.</translation>
 <translation id="4241912885070669028">Te deconectezi de la un cont gestionat de <ph name="SIGNOUT_MANAGED_DOMAIN" />. Astfel, datele Chromium vor fi șterse de pe acest dispozitiv, dar vor rămâne în Contul Google.</translation>
 <translation id="4555020257205549924">Când această funcție este activată, Chromium se va oferi să traducă paginile scrise în alte limbi utilizând Google Traducere. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Activează scanerul din Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
index 02e75daa..c6e68fa4 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ru.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Скопировано в Chromium</translation>
 <translation id="3605252743693911722">Войдите в Chromium, чтобы синхронизировать закладки, пароли и другую информацию на всех ваших устройствах.</translation>
 <translation id="3805899903892079518">У Chromium нет доступа к вашим фото и видео. Чтобы предоставить его, нажмите "Настройки &gt; Конфиденциальность &gt; Фотографии".</translation>
-<translation id="4157467675761413638">Совет для Chromium. Чтобы открыть дополнительные настройки вкладок, нажмите и удерживайте кнопку "Показать вкладки" на панели инструментов в нижней или верхней части экрана.</translation>
 <translation id="4241912885070669028">Вы выходите из аккаунта, которым управляет администратор домена <ph name="SIGNOUT_MANAGED_DOMAIN" />. Обратите внимание, что данные Chromium будут удалены с устройства, но сохранятся в аккаунте Google.</translation>
 <translation id="4555020257205549924">Когда эта функция включена, Chrome предлагает перевести страницы с помощью Google Переводчика. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Включить сканер в Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
index 630f7eb..ceeb9dc 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sk.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Skopírovaná do prehliadača Chromium</translation>
 <translation id="3605252743693911722">Prihláste sa do prehliadača Chromium a získajte svoje záložky, heslá a ďalšie nastavenia na všetkých zariadeniach.</translation>
 <translation id="3805899903892079518">Chromium nemá prístup k vašim fotkám ani videám. Prístup povoľte v časti Nastavenia systému iOS &gt; Súkromie &gt; Fotky.</translation>
-<translation id="4157467675761413638">Tip pre Chromium: ďalšie možnosti kariet získate pridržaním tlačidla Zobraziť karty na paneli s nástrojmi, ktorý sa nachádza v dolnej alebo hornej časti obrazovky.</translation>
 <translation id="4241912885070669028">Odhlasujete sa z účtu spravovaného doménou <ph name="SIGNOUT_MANAGED_DOMAIN" />. Touto akciou odstránite údaje prehliadača Chromium z príslušného zariadenia, avšak zostanú naďalej vo vašom účte Google.</translation>
 <translation id="4555020257205549924">Po zapnutí tejto funkcie bude prehliadač Chromium ponúkať preloženie stránok napísaných v inom jazyku pomocou Prekladača Google. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Zapnutie skenera prehliadača Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
index c7fb453..ac03e10 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sl.xtb
@@ -23,7 +23,6 @@
 <translation id="3256316712990552818">Kopirano v Chromium</translation>
 <translation id="3605252743693911722">Prijavite se v Chromium, če želite dostopati do svojih zaznamkov, gesel in drugega v vseh napravah.</translation>
 <translation id="3805899903892079518">Chromium nima dostopa do fotografij ali videoposnetkov. Omogočite dostop v sistemu iOS: Settings &gt; Privacy &gt; Photos.</translation>
-<translation id="4157467675761413638">Nasvet za Chromium. Če želite več možnosti za zavihke, pridržite gumb za prikaz zavihkov v orodni vrstici na dnu ali vrhu zaslona.</translation>
 <translation id="4241912885070669028">Odjavili se boste iz računa, ki ga upravlja <ph name="SIGNOUT_MANAGED_DOMAIN" />. S tem boste iz te naprave izbrisali podatke v Chromiumu, vendar bodo vaši podatki še vedno na voljo v Google Računu.</translation>
 <translation id="4555020257205549924">Kadar je vklopljena ta funkcija, bo Chromium ponudil, da z uporabo Google Prevajalnika prevede strani v drugih jezikih. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Vklopite optični bralnik Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
index f8d1d27..a926c96 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sr.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Копирана у Chromium</translation>
 <translation id="3605252743693911722">Пријавите се у Chromium да би вам обележивачи, лозинке и други садржај били доступни на свим уређајима.</translation>
 <translation id="3805899903892079518">Chromium не може да приступа сликама или видео снимцима. Омогућите приступ у iOS Settings (Подешавања iOS-а) &gt; Privacy (Приватност) &gt; Photos (Слике).</translation>
-<translation id="4157467675761413638">Савет за Chromium. Ако желите више опција за картице, притисните и задржите дугме Прикажи картице на траци с алаткама, која се налази у дну или у врху екрана.</translation>
 <translation id="4241912885070669028">Одјављујете се са налога којим управља <ph name="SIGNOUT_MANAGED_DOMAIN" />. То ће избрисати Chromium податке са овог уређаја, али ће подаци остати на Google налогу.</translation>
 <translation id="4555020257205549924">Када је ова функција укључена, Chromium ће нудити да преводи странице написане на другим језицима помоћу Google преводиоца. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Укључите Chromium скенер</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
index 1ea2ef8..98b33b8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sv.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Kopierat till Chromium</translation>
 <translation id="3605252743693911722">Logga in i Chromium om du vill få dina bokmärken, lösenord med mera på alla dina enheter.</translation>
 <translation id="3805899903892079518">Chromium har inte åtkomst till dina foton eller videor. Aktivera åtkomst i iOS-inställningar &gt; Sekretess &gt; Foton.</translation>
-<translation id="4157467675761413638">Tips för Chromium. Tryck länge på Visa flikar i verktygsfältet så visas fler flikalternativ. Du hittar verktygsfältet längst ned eller högst upp på skärmen.</translation>
 <translation id="4241912885070669028">Du håller på att logga ut från ett konto som hanteras av <ph name="SIGNOUT_MANAGED_DOMAIN" />. Åtgärden raderar din data i Chromium från den här enheten, men den finns kvar på Google-kontot.</translation>
 <translation id="4555020257205549924">När den här funktionen har aktiverats visas alternativet i Chromium att översätta sidor som är skrivna på andra språk med hjälp av Google Översätt. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Aktivera Chromium som skanner</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
index 131daa5..69d31cb 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_sw.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Imenakiliwa kwenye Chromium</translation>
 <translation id="3605252743693911722">Ingia katika Chromium ili upate alamisho, manenosiri yako na mengine mengi kwenye vifaa vyako vyote.</translation>
 <translation id="3805899903892079518">Chromium haina uwezo wa kufikia picha au video zako. Washa uwezo wa kufikia katika Mipangilio ya iOS &gt; Faragha &gt; Picha.</translation>
-<translation id="4157467675761413638">Kidokezo cha Chromium. Ili upate chaguo zaidi za kichupo, bonyeza na ushikilie kitufe cha Onyesha Vichupo katika upau wa vidhibiti, ambao unapatikana katika sehemu ya chini au juu ya skrini yako.</translation>
 <translation id="4241912885070669028">Unaondoka kwenye akaunti inayodhibitiwa na <ph name="SIGNOUT_MANAGED_DOMAIN" />. Hatua hii itafuta data yako ya Chromium kwenye kifaa hiki, lakini data yako itasalia katika akaunti yako ya Google.</translation>
 <translation id="4555020257205549924">Kipengele hiki kikiwashwa, Chromium itatafsiri kurasa zilizoandikwa kwa lugha nyingine kwa kutumia Google Tafsiri. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Washa kichanganuzi cha Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
index 6cb52d3..0044e0d8 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_ta.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium இல் நகலெடுக்கப்பட்டது</translation>
 <translation id="3605252743693911722">உங்கள் எல்லாச் சாதனங்களிலும் உங்கள் புக்மார்க்குகள், கடவுச்சொற்கள் மற்றும் பலவற்றைப் பெற, Chromium இல் உள்நுழையவும்.</translation>
 <translation id="3805899903892079518">Chromiumமுக்குப் படங்களையோ வீடியோக்களையோ அணுக அனுமதி இல்லை. அணுகலை 'iOS அமைப்புகள் &gt; தனியுரிமை &gt; படங்கள்' என்பதில் இயக்கவும்.</translation>
-<translation id="4157467675761413638">Chromium உதவிக்குறிப்பு. மேலும் அதிக தாவல் விருப்பங்களைப் பார்க்க, கருவிப்பட்டியிலுள்ள ‘தாவல்களைக் காட்டு’ பட்டனை அழுத்திப் பிடிக்கவும். அந்த பட்டன், திரையின் அடிப்பகுதியில் அல்லது மேல்பகுதியில் இருக்கும்.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> நிர்வகிக்கும் கணக்கிலிருந்து வெளியேறுகிறீர்கள். இவ்வாறு செய்வதால், இந்தச் சாதனத்திலிருந்து Chromium தரவு நீக்கப்படும், எனினும் உங்கள் Google கணக்கில் தரவு தொடர்ந்து இருக்கும்.</translation>
 <translation id="4555020257205549924">இந்த அம்சம் இயக்கப்பட்டிருக்கும் போது, பிற மொழிகளில் எழுதப்பட்டுள்ள பக்கங்களை Google மொழியாக்கத்தைப் பயன்படுத்தி, உங்கள் மொழியில் மொழிபெயர்த்துக்கொள்ளும் வசதியை Chromium வழங்கும். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium ஸ்கேனரை ஆன் செய்யவும்</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
index 0f6e69a..72ececdd 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_te.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromiumకి కాపీ చేయబడింది</translation>
 <translation id="3605252743693911722">మీ పరికరాలన్నింటిలో మీ బుక్‌మార్క్‌లు, పాస్‌వర్డ్‌లు మరియు మరిన్నింటిని పొందడానికి Chromiumకు సైన్ ఇన్ చేయండి.</translation>
 <translation id="3805899903892079518">Chromium మీ ఫోటోలు లేదా వీడియోలకు యాక్సెస్‌ను కలిగి లేదు. iOS సెట్టింగ్‌లు &gt; గోప్యత &gt; ఫోటోల్లో యాక్సెస్‌ను ప్రారంభించండి.</translation>
-<translation id="4157467675761413638">Chromium చిట్కా. మరిన్ని ట్యాబ్ ఎంపికల కోసం, మీ స్క్రీన్‌లో పైన కానీ దిగువన కానీ ఉండే సాధనాల బార్‌లో ట్యాబ్‌లను చూపు బటన్‌ను నొక్కి పట్టుకోండి.</translation>
 <translation id="4241912885070669028">మీరు <ph name="SIGNOUT_MANAGED_DOMAIN" /> నిర్వహణలో ఉన్న ఖాతా నుండి సైన్ అవుట్ చేస్తున్నారు. దీని వలన మీ Chromium డేటా ఈ పరికరం నుండి తొలగించబడుతుంది, కానీ మీ డేటా మీ Google ఖాతాలో అలాగే ఉంటుంది.</translation>
 <translation id="4555020257205549924">ఈ లక్షణం ప్రారంభించినప్పుడు, Chromium ఇతర భాషల్లో వ్రాసిన పేజీలకు Google అనువాదం ఉపయోగించి అనువాదాన్ని ఆఫర్ చేస్తుంది. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium స్కానర్‌ను ఆన్ చేయండి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
index 4da18b3..c7804ec 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_th.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">คัดลอกลงใน Chromium แล้ว</translation>
 <translation id="3605252743693911722">ลงชื่อเข้าใช้ Chromium เพื่อรับบุ๊กมาร์ก รหัสผ่าน และข้อมูลอื่นๆ ในอุปกรณ์ทุกเครื่องของคุณ</translation>
 <translation id="3805899903892079518">Chromium ไม่มีสิทธิ์เข้าถึงรูปภาพหรือวิดีโอของคุณ เปิดใช้การเข้าถึงได้ในการตั้งค่า iOS &gt; ความเป็นส่วนตัว &gt; รูปภาพ</translation>
-<translation id="4157467675761413638">เคล็ดลับสำหรับ Chromium ถ้าต้องการดูตัวเลือกแท็บเพิ่มเติม ให้กดปุ่ม "แสดงแท็บ" ค้างไว้ในแถบเครื่องมือ ซึ่งอยู่ที่ด้านล่างหรือด้านบนของหน้าจอ</translation>
 <translation id="4241912885070669028">คุณกำลังออกจากระบบบัญชีที่จัดการโดย <ph name="SIGNOUT_MANAGED_DOMAIN" /> การออกจากระบบจะลบข้อมูล Chromium ของคุณออกจากอุปกรณ์เครื่องนี้ แต่ข้อมูลจะยังคงอยู่ในบัญชี Google</translation>
 <translation id="4555020257205549924">เมื่อเปิดฟีเจอร์นี้ Chromium จะเสนอให้แปลหน้าต่างๆ ที่เขียนด้วยภาษาอื่นโดยใช้ Google แปลภาษา <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">เปิดโปรแกรมสแกนของ Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
index 9c3d6ee..8db0044 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_tr.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Chromium'a kopyalandı</translation>
 <translation id="3605252743693911722">Tüm cihazlarınızda yer işaretlerinizi, şifrelerinizi almak ve daha pek çok şey yapmak için Chromium'da oturum açın.</translation>
 <translation id="3805899903892079518">Chromium, fotoğraflarınıza veya videolarınıza erişemiyor. iOS Ayarlar &gt; Gizlilik &gt; Fotoğraflar'dan erişimi etkinleştirin.</translation>
-<translation id="4157467675761413638">Chromium için ipucu: Sekmelerle ilgili daha fazla seçenek görmek için ekranınızın altında veya üstünde görünen araç çubuğunda Sekmeleri Göster düğmesini basılı tutun.</translation>
 <translation id="4241912885070669028"><ph name="SIGNOUT_MANAGED_DOMAIN" /> tarafından yönetilen bir hesabın oturumunu kapatıyorsunuz. Bu işlemle Chromium verileriniz bu cihazdan silinir, ancak Google hesabınızda kalmaya devam eder.</translation>
 <translation id="4555020257205549924">Bu özellik açık durumdayken Chromium, diğer dillerde yazılmış sayfaları Google Çeviri'yi kullanarak çevirmeyi teklif eder. <ph name="BEGIN_LINK" />Daha fazla bilgi<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Chromium tarayıcıyı açın</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
index 720edaff..df1070d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_uk.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Скопійовано в Chromium</translation>
 <translation id="3605252743693911722">Увійдіть в обліковий запис у Chromium, щоб мати доступ до своїх закладок, паролів та інших даних на всіх пристроях.</translation>
 <translation id="3805899903892079518">Chromium не має доступу до ваших фото чи відео. Надайте доступ у меню iOS "Параметри &gt; Конфіденційність &gt; Фото".</translation>
-<translation id="4157467675761413638">Порада щодо Chromium. Щоб відкрити більше параметрів, утримуйте кнопку "Показати вкладки" на панелі інструментів, розташованій унизу або вгорі екрана.</translation>
 <translation id="4241912885070669028">Ви виходите з облікового запису, зареєстрованого в домені <ph name="SIGNOUT_MANAGED_DOMAIN" />. Дані Chrome буде видалено з цього пристрою, але вони залишаться у вашому обліковому записі Google.</translation>
 <translation id="4555020257205549924">Якщо ввімкнути цю функцію, Chromium пропонуватиме перекласти сторінки, написані іншими мовами, за допомогою Перекладача Google. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Увімкніть сканер у Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
index 841609df..e2776631 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_vi.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">Đã sao chép vào Chromium</translation>
 <translation id="3605252743693911722">Đăng nhập vào Chromium để nhận dấu trang, mật khẩu và nhiều nội dung khác trên tất cả các thiết bị của bạn.</translation>
 <translation id="3805899903892079518">Chromium không có quyền truy cập ảnh hoặc video của bạn. Hãy cho phép truy cập Cài đặt iOS &gt; Bảo mật &gt; Ảnh.</translation>
-<translation id="4157467675761413638">Mẹo dành cho Chromium. Để xem thêm các tùy chọn về tab, hãy nhấn và giữ nút Hiển thị tab trên thanh công cụ ở đầu hoặc cuối màn hình.</translation>
 <translation id="4241912885070669028">Bạn đang đăng xuất khỏi tài khoản do <ph name="SIGNOUT_MANAGED_DOMAIN" /> quản lý. Thao tác này sẽ xóa dữ liệu Chromium khỏi thiết bị này nhưng dữ liệu đó sẽ vẫn còn trong tài khoản Google của bạn.</translation>
 <translation id="4555020257205549924">Khi tính năng này được bật, Chromium sẽ đề xuất sử dụng Google Dịch để dịch các trang viết bằng ngôn ngữ khác. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">Bật trình quét của Chromium</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
index e242931..42cca5a 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-CN.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">已复制到 Chromium</translation>
 <translation id="3605252743693911722">登录 Chromium 即可将您的书签、密码等同步到您的所有设备上。</translation>
 <translation id="3805899903892079518">Chromium 无权访问您的照片或视频。请依次点按 iOS 中的“设置”&gt;“隐私”&gt;“照片”,授予其访问权限。</translation>
-<translation id="4157467675761413638">Chromium 提示。要查看更多标签页选项,请按住工具栏(位于屏幕底部或顶部)中的“显示标签页”按钮。</translation>
 <translation id="4241912885070669028">您正要退出由 <ph name="SIGNOUT_MANAGED_DOMAIN" /> 管理的帐号。退出后,您的 Chromium 数据将从这台设备上删除,但仍会保留在您的 Google 帐号中。</translation>
 <translation id="4555020257205549924">启用此功能后,Chromium 将使用 Google 翻译对其他语言的网页进行翻译。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">开启 Chromium 扫描器</translation>
diff --git a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
index b6cc7d36..567e04d 100644
--- a/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_chromium_strings_zh-TW.xtb
@@ -22,7 +22,6 @@
 <translation id="3256316712990552818">已複製到 Chromium</translation>
 <translation id="3605252743693911722">無論使用任何裝置,只要登入 Chromium,即可取得你的書籤、密碼,並沿用其他設定。</translation>
 <translation id="3805899903892079518">Chromium 無法存取您的相片或影片,請前往「iOS 設定」中的 [隱私權] &gt; [相片] 啟用存取權。</translation>
-<translation id="4157467675761413638">Chromium 提示。如需更多分頁選項,請按住工具列 (位於畫面底部或頂端) 中的 [顯示分頁] 按鈕。</translation>
 <translation id="4241912885070669028">你即將登出由 <ph name="SIGNOUT_MANAGED_DOMAIN" /> 所管理的帳戶。系統會將你的 Chromium 資料從這個裝置上刪除,但繼續保留在你的 Google 帳戶中。</translation>
 <translation id="4555020257205549924">開啟這項功能後,Chromium 會使用 Google 翻譯來翻譯其他語言的網頁。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
 <translation id="4681781466797808448">開啟 Chromium 掃描器</translation>
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
index 8e833eb..c6825c7 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_am.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">የተመረጠው ውሂብ ከChrome እና የሰመሩ መሣሪያዎች ተወግዷል። የGoogle መለያዎ history.google.com ላይ እንደ የሌሎች Google አገልግሎቶች ፍለጋዎች እና እንቅስቃሴ ያለ ሌሎች የአሰሳ ታሪክ ዓይነት ሊኖረው ይችላል።</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome የአሰሳ ተሞክሮዎን ለማሻሻል የድር አገልግሎቶችን ሊጠቀም ይችላል። እነዚህን አገልግሎቶች በአማራጭነት ሊያሰናክሏቸው ይችላሉ። <ph name="BEGIN_LINK" />ተጨማሪ ለመረዳት<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">የChrome ጠቃሚ ምክር። ተጨማሪ የትር አማራጮችን ለማግኘት በመሣሪያ አሞሌው ውስጥ የትሮችን አሳይ አዝራሩን ተጭነው ይያዙ፣ ይህ በማያ ገጽዎ አናት ወይም ግርጌ ላይ ነው ያለው።</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
index 308ccd8..69a90cf 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ar.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">‏تمت إزالة البيانات المُحددة من متصفح Chrome والأجهزة التي تمت مزامنتها. قد يحتوي حسابك في Google على نماذج أخرى من سجل التصفح، مثل عمليات البحث والأنشطة من خدمات Google الأخرى في history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">‏قد يستخدم Google Chrome خدمات الويب لتحسين تجربة التصفح. ويمكنك بشكل اختياري إيقاف هذه الخدمات. <ph name="BEGIN_LINK" />مزيد من المعلومات<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">‏نصيحة لاستخدام Chrome: لمزيد من خيارات علامات التبويب، يمكنك الضغط مع الاستمرار على الزر "عرض علامات التبويب" في شريط الأدوات الموجود أسفل الشاشة أو أعلاها.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
index 3c1c092..0b040d67 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bg.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Избраните данни са премахнати от Chrome и синхронизираните устройства. Възможно е в профила ви в Google да има други видове история на сърфиране, съхранявани на адрес history.google.com – например търсения и активност от други наши услуги.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome може да използва уеб услуги, за да подобри сърфирането ви. Ако искате, можете да ги деактивирате. <ph name="BEGIN_LINK" />Научете повече<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Съвет за Chrome. За да видите още опции за разделите, натиснете и задръжте бутона „Показване на разделите“ в лентата с инструменти в долната или горната част на екрана.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
index ddedb59c..02572478 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_bn.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Chrome ও সিঙ্ক করা ডিভাইস থেকে বেছে নেওয়া ডেটা সরিয়ে ফেলা হয়েছে। আপনার Google অ্যাকাউন্টের অন্যান্য ধরনের ব্রাউজিং ইতিহাস, যেমন বিভিন্ন Google পরিষেবায় করা সার্চ এবং অ্যাক্টিভিটির মতো তথ্য history.google.com-এ সেভ করা থাকতে পারে।</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome আপনার ব্রাউজিংয়ের অভিজ্ঞতাকে উন্নত করতে ওয়েব পরিষেবাগুলি ব্যবহার করতে পারে৷ আপনি আপনার ইচ্ছা অনুযায়ী এই পরিষেবাগুলিকে বন্ধ করতে পারেন৷ <ph name="BEGIN_LINK" />আরও জানুন<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome টিপ। ট্যাবে আরও বিকল্পের জন্য, আপনার স্ক্রিনের নিচে অথবা উপরে থাকা টুলবারে দেখানো ট্যাবটি প্রেস করে ধরে থাকুন।</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
index be56021..67934dc 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ca.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Les dades seleccionades s'han suprimit de Chrome i dels dispositius sincronitzats. És possible que el vostre compte de Google tingui altres formes de l'historial de navegació a history.google.com, com ara les cerques i l'activitat d'altres serveis de Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome pot utilitzar serveis web per millorar la vostra experiència de  navegació, però podeu desactivar-los si voleu. <ph name="BEGIN_LINK" />Més informació<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Consell de Chrome. Per accedir a més opcions de pestanyes, mantén premut el botó Mostra pestanyes a la barra d'eines, que és a la part inferior o superior de la pantalla.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
index 232d4d2..5bdfd71 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_cs.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Vybraná data byla z Chromu a synchronizovaných zařízení odstraněna. Na stránce history.google.com mohou být k dispozici další druhy historie prohlížení zaznamenané ve vašem účtu Google, například vyhledávací dotazy a aktivita z ostatních služeb Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Prohlížeč Google Chrome vám může usnadnit prohlížení pomocí webových služeb. Tyto služby můžete případně zakázat. <ph name="BEGIN_LINK" />Další informace<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tip pro Chrome. Další možnosti karet zobrazíte podržením tlačítka Zobrazit karty, které najdete v dolní nebo horní části obrazovky.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
index 7e04195..29de61b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_da.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">De valgte data er fjernet fra Chrome og synkroniserede enheder. Din Google-konto kan have andre former for browserhistorik, f.eks. søgninger og aktivitet fra andre Google-tjenester, på history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome bruger muligvis webtjenester for at forbedre din browseroplevelse. Du kan vælge at deaktivere disse tjenester. <ph name="BEGIN_LINK" />Få flere oplysninger<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome-tip. Hvis du vil se flere indstillinger for faner, skal du trykke på knappen Vis faner på værktøjslinjen nederst eller øverst på skærmen.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
index a09e80e..3ec53a6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_de.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Die ausgewählten Daten wurden aus Chrome und von allen synchronisierten Geräten entfernt. Eventuell finden Sie unter history.google.com weitere Arten von Browserverlaufsdaten wie Suchanfragen oder Aktivitäten anderer Google-Dienste für Ihr Google-Konto.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome verwendet möglicherweise Webdienste zur Unterstützung Ihrer Onlinesuche. Sie haben die Möglichkeit, diese Dienste zu deaktivieren. <ph name="BEGIN_LINK" />Weitere Informationen<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome-Tipp: Wenn Sie weitere Tab-Optionen sehen möchten, halten Sie die Schaltfläche "Tabs anzeigen" in der Symbolleiste gedrückt. Sie finden die Leiste unten oder oben auf dem Bildschirm.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
index 511fbab6..039c6cd87 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_el.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Τα επιλεγμένα δεδομένα καταργήθηκαν από το Chrome και από τις συγχρονισμένες συσκευές. Ο Λογαριασμός σας Google ενδέχεται να διαθέτει άλλες μορφές ιστορικού περιήγησης, όπως αναζητήσεις και δραστηριότητα από άλλες υπηρεσίες Google στη διεύθυνση history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Το Google Chrome ενδέχεται να χρησιμοποιεί υπηρεσίες ιστού για να βελτιώσει την εμπειρία περιήγησής σας. Μπορείτε, εάν θέλετε, να απενεργοποιήσετε αυτές τις υπηρεσίες. <ph name="BEGIN_LINK" />Μάθετε περισσότερα<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Συμβουλή για το Chrome. Για περισσότερες επιλογές για τις καρτέλες, πατήστε παρατεταμένα το κουμπί "Εμφάνιση καρτελών" στη γραμμή εργαλείων, η οποία βρίσκεται στο κάτω τμήμα ή στην κορυφή της οθόνης σας.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
index 84588b0..873ab16 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_en-GB.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">The selected data has been removed from Chrome and synced devices. Your Google Account may have other forms of browsing history like searches and activity from other Google services at history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome may use web services to improve your browsing experience. You may optionally disable these services. <ph name="BEGIN_LINK" />Learn more<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome tip. For more tab options, press and hold the Show Tabs button in the toolbar, which is at the bottom or top of your screen.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
index c2a63f3a..481d0c5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es-419.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Los datos seleccionados se quitaron de Chrome y los dispositivos sincronizados. Es posible que tu cuenta de Google tenga otros formularios del historial de navegación, como las búsquedas y la actividad de otros servicios de Google en history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Es posible que Google Chrome utilice servicios web para mejorar tu experiencia de navegación (tienes la opción de inhabilitar estos servicios). <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Sugerencia de Chrome: Para obtener más opciones de pestañas, mantén presionado el botón Mostrar pestañas de la barra de herramientas, que se encuentra en la parte inferior o superior de la pantalla.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
index 81cba5a..2168fb02 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_es.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Los datos seleccionados se han eliminado de Chrome y de los dispositivos sincronizados. Es posible que tu cuenta de Google tenga otras formas del historial de navegación, como las búsquedas o la actividad de otros servicios de Google en la página history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome puede utilizar servicios web para mejorar tu experiencia de navegación. Puedes habilitar o inhabilitar estos servicios. <ph name="BEGIN_LINK" />Más información<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Consejo sobre Chrome. Para ver más opciones de pestañas, mantén pulsado el botón Mostrar pestañas en la barra de herramientas, que se encuentra en la parte inferior o superior de la pantalla.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
index e5e7237..728fc64 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_et.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Valitud andmed eemaldati Chrome'ist ja sünkroonitud seadmetest. Aadressil history.google.com võib teie Google'i kontol olla muus vormis sirvimisajalugu, nagu otsingud ja tegevused muudes Google'i teenustes.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome võib kasutada veebiteenuseid sirvimiskogemuse parandamiseks. Võite need teenused valikuliselt keelata. <ph name="BEGIN_LINK" />Lisateave<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome'i nõuanne. Vahelehtede muude valikute vaatamiseks hoidke all ekraani üla- või alaosas tööriistaribal olevat nuppu Kuva vahelehed.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
index 693ba3b..1836e71 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fa.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">‏داده‌های انتخاب‌‌شده از Chrome و دستگاه‌های همگام‌سازی‌شده حذف شدند. ممکن است اشکال دیگری از سابقه مرورتان در حساب Google شما وجود داشته باشد، مانند جستجو‌ها و فعالیت دیگر سرویس‌های Google در history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">‏ممکن است Google Chrome برای بهبود تجربه مرور شما از سرویس‌های وب استفاده کند. می‌توانید به صورت اختیاری این سرویس‌ها را غیرفعال کنید. <ph name="BEGIN_LINK" />بیشتر بدانید<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">‏نکته Chrome. برای دیدن گزینه‌های بیشتر برگه، دکمه «نمایش برگه‌ها» را در نوارابزار (در پایین یا بالای صفحه است) فشار دهید و نگه دارید.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
index ef85acb..abe7afd 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fi.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Valitut tiedot on poistettu Chromesta ja synkronoiduilta laitteilta. Google-tililläsi voi olla muita selaushistoriatietoja, kuten hakuja ja toimintaa muista Google-palveluista, osoitteessa history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome voi käyttää verkkopalveluita selauskokemuksesi parantamiseen. Voit halutessasi poistaa nämä palvelut käytöstä. <ph name="BEGIN_LINK" />Lisätietoja<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome-vinkki: Voit avata välilehtien lisäasetukset painamalla ylä- tai alapalkissa olevaa Näytä välilehdet ‑painiketta pitkään.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
index c9ff3e8..71faf2a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fil.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Inalis ang piniling data mula sa Chrome at mga naka-sync na device. Maaaring mayroong ibang mga uri ng history ng pag-browse ang iyong Google Account gaya ng mga paghahanap at aktibidad mula sa iba pang mga serbisyo ng Google sa history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Maaaring gumamit ang Google Chrome ng mga serbisyo sa web upang mapabuti ang iyong karanasan sa pagba-browse. Opsyonal mong madi-disable ang mga serbisyong ito. <ph name="BEGIN_LINK" />Matuto pa<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tip sa Chrome. Para sa higit pang opsyon sa tab, pindutin nang matagal ang button na Ipakita ang Mga Tab sa toolbar, na nasa ibaba o itaas ng iyong screen.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
index bc7a5fa4..8331dcd 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_fr.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Les données sélectionnées ont été supprimées de Chrome et des appareils synchronisés. Votre compte Google conserve peut-être d'autres formes d'historique de navigation sur la page history.google.com concernant, par exemple, vos recherches ou vos activités via d'autres services Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome peut utiliser des services Web pour améliorer votre confort de navigation. Vous pouvez choisir de désactiver ces services. <ph name="BEGIN_LINK" />En savoir plus<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Astuce Chrome. Pour afficher plus d'options de l'onglet, appuyez de manière prolongée sur le bouton "Afficher les onglets" situé dans la barre d'outils affichée dans la partie inférieure ou supérieure de l'écran.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
index 7cc1893..30871e4 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_gu.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">પસંદ કરેલ ડેટા Chrome અને સિંક ડિવાઇસમાંથી દૂર કરવામાં આવ્યો છે. તમારા Google એકાઉન્ટમાં બ્રાઉઝિંગ ઇતિહાસના બીજા સ્વરૂપો જેમ કે શોધ અને history.google.com પરની બીજા Google સેવાઓમાંથી પ્રવૃત્તિ હોય શકે છે.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">તમારા બ્રાઉઝ કરવાના અનુભવને વધુ સારો બનાવવા માટે Google Chrome વેબ સેવાઓનો ઉપયોગ કરી શકે. તમે વૈકલ્પિક રીતે આ સેવાઓને બંધ કરી શકો છો. <ph name="BEGIN_LINK" />વધુ જાણો<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome ટિપ. વધુ ટૅબ વિકલ્પો માટે, તમારી સ્ક્રીનના તળિયે અથવા ટોચે આવેલા ટૂલબારમાંના 'ટૅબ બતાવો' બટનને દબાવી રાખો.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
index 921da44..51edefd4 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hi.xtb
@@ -53,5 +53,4 @@
 <translation id="8459495907675268833">चयनित डेटा Chrome और समन्वयित डिवाइस से निकाल दिया गया है. हो सकता है कि आपके Google खाते में अन्य प्रकार के ब्राउज़िंग इतिहास जैसे खोज और history.google.com पर अन्य Google सेवाओं की गतिविधि हो.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">आपके ब्राउज़िंग अनुभव को बेहतर बनाने के लिए Google Chrome, वेब सेवाओं का इस्तेमाल कर सकता है. आप चाहें तो इन सेवाओं को बंद करने का विकल्प चुन सकते हैं. <ph name="BEGIN_LINK" />ज़्यादा जानें<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome के लिए सलाह. ज़्यादा टैब विकल्पों के लिए, टूलबार में 'टेब दिखाएं' बटन को दबाकर रखें, जो आपकी स्क्रीन के सबसे नीचे या सबसे ऊपर मिलेगा.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
index 16fbdb2b..3a25acf8 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hr.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Odabrani podaci uklonjeni su iz Chromea i sa sinkroniziranih uređaja. Na Google računu možda postoje drugi oblici povijesti pregledavanja, primjerice pretraživanja i aktivnosti s drugih Googleovih usluga, na stranici history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome može upotrebljavati web-usluge za poboljšanje pregledavanja. Ako želite, možete onemogućiti te usluge. <ph name="BEGIN_LINK" />Saznajte više<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Savjet za Chrome. Za više opcija kartice pritisnite i držite gumb Prikaži kartice na alatnoj traci pri dnu ili vrhu zaslona.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
index c59dc9b..77556db 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_hu.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">A kiválasztott adatokat eltávolítottuk a Chrome-ból és a szinkronizált eszközökről. Előfordulhat, hogy Google-fiókjában (a history.google.com címen) még szerepelnek a böngészési előzmények egyéb formái, így például a keresések és egyéb tevékenységek más Google-szolgáltatásokból.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Előfordulhat, hogy a Google Chrome internetes szolgáltatásokat használ böngészési élménye javítására. Lehetősége van e szolgáltatások letiltására. <ph name="BEGIN_LINK" />További információ<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tipp a Chrome használatához. A további lapbeállításokhoz tartsa lenyomva az eszköztárban lévő Lapok megjelenítése gombot, amely a képernyő alsó vagy felső részén található.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
index f0ffa55..aadac73 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_id.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Data yang dipilih telah dihapus dari Chrome dan perangkat yang disinkronkan. Akun Google Anda mungkin memiliki bentuk histori penjelajahan lain seperti penelusuran dan aktivitas dari layanan Google lainnya di history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome dapat menggunakan layanan web untuk meningkatkan pengalaman penjelajahan Anda. Anda dapat memilih untuk menonaktifkan layanan ini. <ph name="BEGIN_LINK" />Pelajari lebih lanjut<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tips Chrome. Untuk opsi tab lainnya, tekan dan tahan tombol Tampilkan Tab di toolbar, yang terdapat di bagian bawah atau atas layar.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
index d36785e..29e90581 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_it.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">I dati selezionati sono stati rimossi da Chrome e dai dispositivi sincronizzati. Il tuo Account Google potrebbe avere altre forme di cronologia di navigazione, ad esempio ricerche e attività, di altri servizi Google alla pagina history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome potrebbe utilizzare servizi web per migliorare la tua esperienza di navigazione. Se preferisci, puoi disattivare questi servizi. <ph name="BEGIN_LINK" />Ulteriori informazioni<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Suggerimento per Chrome. Per vedere più opzioni sulla scheda, tieni premuto il pulsante Mostra schede della barra degli strumenti, che si trova nella parte inferiore o superiore della schermata.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
index 28f41eaa..cb04fc7 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_iw.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">‏הנתונים שבחרת הוסרו מ-Chrome ומהמכשירים המסונכרנים. ייתכן שבכתובת history.google.com תוכל לגשת לסוגים אחרים של היסטוריית גלישה בחשבון Google, כמו חיפושים ופעילות משירותי Google אחרים.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">‏Google Chrome עשוי להשתמש בשירותי אינטרנט לשיפור חוויית הגלישה שלך. ניתן להשבית את השירותים האלה. <ph name="BEGIN_LINK" />למידע נוסף<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">‏טיפ למשתמשי Chrome. כדי לקבל יותר אפשרויות של כרטיסיות, יש ללחוץ לחיצה ארוכה על הלחצן 'הצגת כרטיסיות' בסרגל הכלים, שנמצא בחלק התחתון או העליון של המסך.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
index ae4e18d..ccbb9822 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ja.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">選択したデータが Chrome から削除され、同期されたデバイスからも削除されました。他の Google サービスでの検索や操作など、Google アカウントの他の形式の閲覧履歴が history.google.com に残ることがあります。</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chromeは、より快適なブラウジングを提供する目的でウェブサービスを使用することがあります。これらのサービスは無効にすることもできます。<ph name="BEGIN_LINK" />詳細<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome の使い方のヒント: タブのオプションをさらに表示するには、画面の下部または上部のツールバーにある [タブを表示] を押し続けます。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
index 522ba746..c907cc0 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_kn.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">ಆಯ್ಕೆಮಾಡಲಾದ ಡೇಟಾವನ್ನು Chrome ಮತ್ತು ಸಿಂಕ್ ಮಾಡಲ್ಪಟ್ಟ ಸಾಧನಗಳಿಂದ ತೆಗೆದುಹಾಕಲಾಗಿದೆ. ನಿಮ್ಮ Google ಖಾತೆಯು history.google.com ನಲ್ಲಿ ಇತರ Google ಸೇವೆಗಳಿಂದ ಹುಡುಕಾಟಗಳು ಮತ್ತು ಚಟುವಟಿಕೆಯಂತಹ ಬ್ರೌಸಿಂಗ್ ಹುಡುಕಾಟಗಳ ಇತರ ಪ್ರಕಾರಗಳನ್ನು ಹೊಂದಿರಬಹುದು.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome ನಿಮ್ಮ ಬ್ರೌಸಿಂಗ್ ಅನುಭವವನ್ನು ಉತ್ತಮಗೊಳಿಸಲು ವೆಬ್‍ ಸೇವೆಗಳನ್ನು ಬಳಸಬಹುದು. ನಿಮಗೆ ಬೇಡವೆಂದಾಗ ಈ ಸೇವೆಗಳನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಬಹುದು. <ph name="BEGIN_LINK" />ಇನ್ನಷ್ಟು ತಿಳಿಯಿರಿ<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome ಸಲಹೆ. ಇನ್ನಷ್ಟು ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗಾಗಿ, ನಿಮ್ಮ ಪರದೆಯ ಕೆಳಭಾಗ ಅಥವಾ ಮೇಲ್ಭಾಗದಲ್ಲಿರುವ ಪರಿಕರ ಪಟ್ಟಿಯಲ್ಲಿರುವ "ಟ್ಯಾಬ್‌ಗಳನ್ನು ತೋರಿಸಿ" ಬಟನ್ ಅನ್ನು ಒತ್ತಿಹಿಡಿಯಿರಿ.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
index ac139d3..ed56a94 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ko.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">선택한 데이터가 Chrome 및 동기화된 기기에서 삭제되었습니다. history.google.com에서 검색이나 기타 Google 서비스에서의 활동 등 내 Google 계정에 있는 다른 형식의 탐색 기록을 확인할 수 있습니다.</translation>
 <translation id="8540666473246803645">Chrome</translation>
 <translation id="8606668294522778825">Chrome에서 사용자에게 더 나은 인터넷 사용 환경을 제공하기 위해 웹 서비스를 사용할 수 있습니다. 원하는 경우 서비스를 사용 중지하실 수 있습니다. <ph name="BEGIN_LINK" />자세히 알아보기<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome 도움말. 더 많은 탭 옵션을 보려면 화면 하단이나 상단에 있는 툴바에서 탭 표시 버튼을 길게 누릅니다.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
index 39594c1..eb603c76 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lt.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Pasirinkti duomenys pašalinti iš „Chrome“ ir sinchronizuojamų įrenginių. Adresu history.google.com gali būti pateikta kitų formų jūsų „Google“ paskyros istorija, pvz., paieškos ir veikla kitose „Google“ paslaugose.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">„Google Chrome“ gali naudoti žiniatinklio paslaugas naršymo patirčiai pagerinti. Galite pasirinktinai išjungti šias paslaugas. <ph name="BEGIN_LINK" />Sužinokite daugiau<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">„Chrome“ patarimas. Jei reikia daugiau skirtukų parinkčių, paspauskite ir palaikykite mygtuką „Rodyti skirtukus“ įrankių juostoje, kuri yra ekrano apačioje arba viršuje.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
index 7e7313f..e1497ed8 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_lv.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Atlasītie dati ir noņemti no pārlūka Chrome un sinhronizētajām ierīcēm. Jūsu Google kontam vietnē history.google.com var būt citu veidu pārlūkošanas vēstures dati, piemēram, meklēšanas vaicājumi un darbības citos Google pakalpojumos.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome var izmantot tīmekļa pakalpojumus, lai uzlabotu jūsu pārlūkošanas pieredzi. Jūs varat arī atspējot šos pakalpojumus. <ph name="BEGIN_LINK" />Uzziniet vairāk<ph name="END_LINK" />.</translation>
-<translation id="96145293669295453">Chrome padoms. Lai iegūtu vairāk ciļņu iespējas, rīkjoslā, kas atrodas ekrāna apakšdaļā vai augšdaļā, nospiediet un turiet pogu Rādīt cilnes.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
index 9ab49b2d3..62607a3 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ml.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">തിരഞ്ഞെടുത്ത ഡാറ്റയെ Chrome-ൽ നിന്നും സമന്വയിപ്പിച്ച ഉപകരണങ്ങളിൽ നിന്നും നീക്കംചെയ്‌തു. നിങ്ങളുടെ Google അക്കൗണ്ടിന് history.google.com എന്നതിൽ മറ്റ് Google സേവനങ്ങളിൽ നിന്നുള്ള തിരയലുകൾ, പ്രവൃത്തി എന്നിങ്ങനെ മറ്റ് തരത്തിലുള്ള ബ്രൗസിംഗ് ചരിത്രമുണ്ടായിരിക്കാം.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">നിങ്ങളുടെ ബ്രൗസിംഗ് അനുഭവം മെച്ചപ്പെടുത്താൻ Google Chrome വെബ് സേവനങ്ങൾ ഉപയോഗിക്കാനിടയുണ്ട്. നിങ്ങൾക്ക് ഈ സേവനങ്ങൾ ഓപ്‌ഷണലായി പ്രവർത്തനരഹിതമാക്കാം. <ph name="BEGIN_LINK" />കൂടുതലറിയുക<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome നുറുങ്ങ്. കൂടുതൽ ടാബ് ഓപ്ഷനുകൾക്കായി, നിങ്ങളുടെ സ്‌ക്രീനിന്റെ താഴെയോ മുകളിലോ ഉള്ള, ടൂൾബാറിലെ 'ടാബ് കാണിക്കുക' ബട്ടൺ അമർത്തിപ്പിടിക്കുക.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
index 019c1ec..700fe95 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_mr.xtb
@@ -55,5 +55,4 @@
 <translation id="8459495907675268833">निवडलेला डेटा Chrome आणि सिंक केलेल्या डिव्हाइसमधून काढला गेला आहे. तुमच्या Google खात्यामध्ये history.google.com येथे ब्राउझिंग इतिहासाची Google च्या इतर सेवांमधील शोध आणि अॅक्टिव्हिटी यासारखी इतर स्वरूपे असू शकतात.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome तुमच्या ब्राउझिंग अनुभवात सुधारणा करण्यासाठी वेब सेवा वापरू शकते. तुमच्याकडे या सेवा बंद करण्याचा पर्याय आहे. <ph name="BEGIN_LINK" />अधिक जाणून घ्या<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome टीप. अधिक टॅब पर्यायांसाठी, टूलबारवरील टॅब दाखवा बटण दाबा आणि धरून ठेवा, जे तुमच्या स्क्रीनच्या खाली किंवा सर्वात वर असते.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
index ecf3731..b36399a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ms.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Data yang dipilih telah dialih keluar daripada Chrome dan peranti yang disegerakkan. Akaun Google anda mungkin mempunyai sejarah penyemakan imbas dalam bentuk lain seperti carian dan aktiviti daripada perkhidmatan Google yang lain di history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome mungkin menggunakan perkhidmatan web untuk meningkatkan pengalaman semakan imbas anda. Anda boleh memilih untuk melumpuhkan perkhidmatan ini. <ph name="BEGIN_LINK" />Ketahui lebih lanjut<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Petua Chrome. Untuk melihat lebih banyak pilihan tab, tekan dan tahan butang Tunjukkan Tab dalam bar alat, yang terletak di bahagian bawah atau atas skrin anda.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
index b86aae6..d296ef6 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_nl.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">De geselecteerde gegevens zijn verwijderd uit Chrome en van gesynchroniseerde apparaten. Voor je Google-account kunnen andere vormen van browsegeschiedenis (zoals zoekopdrachten en activiteit uit andere Google-services) beschikbaar zijn via history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome kan webservices gebruiken om je browse-ervaring te verbeteren. Je kunt deze services eventueel uitschakelen. <ph name="BEGIN_LINK" />Meer informatie<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome-tip. Voor meer tabbladopties tik je, op de werkbalk onder- of bovenaan het scherm, op de knop 'Tabbladen weergeven' en houd je deze knop vast.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
index 84cdf85..71b935ff 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_no.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">De valgte dataene er fjernet fra Chrome og alle synkroniserte enheter. Det kan hende Google-kontoen din har andre typer nettleserlogger, for eksempel for søk og aktivitet fra andre Google-tjenester, på history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome bruker nettjenester for å forbedre nettopplevelsen din. Du kan deaktivere disse tjenestene. <ph name="BEGIN_LINK" />Finn ut mer<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome-tips. For flere fanealternativer, trykk og hold Vis fane-knappen i verktøylinjen, som du finner nederst eller øverst på skjermen.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
index f1ab8a2..10a932fe 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pl.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Wybrane dane zostały usunięte z Chrome i synchronizowanych urządzeń. Inne rodzaje historii przeglądania, takie jak wyszukiwania i aktywność w innych usługach Google, mogą być nadal dostępne na Twoim koncie Google na history.google.com</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Aby poprawić wygodę przeglądania, Google Chrome może korzystać z usług internetowych. Możesz je opcjonalnie wyłączyć. <ph name="BEGIN_LINK" />Dowiedz się więcej<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Wskazówka dla użytkowników Chrome. Aby zobaczyć więcej opcji kart, naciśnij i przytrzymaj przycisk „Pokaż karty” na pasku narzędzi, który znajduje się na dole lub górze ekranu.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
index 2596180e..8de6953 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-BR.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Os dados selecionados foram removidos do Chrome e dos dispositivos sincronizados. É possível que sua Conta do Google tenha outras formas de histórico de navegação, como pesquisas e atividades de outros serviços do Google em history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">O Google Chrome pode usar os serviços da Web para melhorar sua experiência de navegação. Se preferir, é possível desativar esses serviços. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Dica do Chrome. Para ver mais opções de guias, toque no botão "Exibir guias" na barra de ferramentas, na parte superior ou inferior da tela, e mantenha-o pressionado.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
index c1368ed..4203554 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_pt-PT.xtb
@@ -53,5 +53,4 @@
 <translation id="8459495907675268833">Os dados selecionados foram removidos do Chrome e dos dispositivos sincronizados. A sua Conta Google pode ter outras formas do histórico de navegação, como pesquisas e atividade de outros serviços Google, em history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">O Google Chrome poderá utilizar serviços Web para melhorar a sua experiência de navegação. Poderá optar por desativar estes serviços. <ph name="BEGIN_LINK" />Saiba mais<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Sugestão para o Chrome: para obter mais opções de separadores, prima sem soltar o botão Mostrar separadores na barra de ferramentas, que se encontra na parte superior ou inferior do ecrã.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
index 6e45d41..9aa0d4c5 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ro.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Datele selectate au fost eliminate din Chrome și de pe dispozitivele sincronizate. Contul Google poate să ofere alte forme ale istoricului de navigare, cum ar fi căutările și activitatea din alte servicii Google, la history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Este posibil ca Google Chrome să folosească servicii web pentru a-ți îmbunătăți experiența de navigare. Poți să dezactivezi aceste servicii. <ph name="BEGIN_LINK" />Află mai multe<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Sfat pentru Chrome: pentru mai multe opțiuni de file, apasă lung butonul Afișează filele din bara de instrumente, care se află în partea de sus sau de jos a ecranului.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
index 1c5b94a..7abbbbc 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ru.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Выбранные данные удалены из Chrome и с синхронизированных устройств. Остальная история ваших действий в Интернете может храниться в аккаунте Google, например в виде поисковых запросов и сведений из наших сервисов. Она доступна на странице history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Для более качественной работы Google Chrome может использовать веб-сервисы. При необходимости вы можете отключить их. <ph name="BEGIN_LINK" />Подробнее…<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Совет для Chrome. Чтобы открыть дополнительные настройки вкладок, нажмите и удерживайте кнопку "Показать вкладки" на панели инструментов в нижней или верхней части экрана.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
index 2e6c325..c92f27a9 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sk.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Vybraté údaje boli odstránené z Chromu a synchronizovaných zariadení. Váš účet Google môže mať na adrese history.google.com ďalšie formy histórie prehliadania, ako napríklad vyhľadávania a aktivity v iných službách Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome vám môže uľahčiť prehliadanie pomocou webových služieb. Vybrané webové služby môžete podľa potreby vypnúť. <ph name="BEGIN_LINK" />Ďalšie informácie<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tip pre Chrome: ďalšie možnosti kariet získate pridržaním tlačidla Zobraziť karty na paneli s nástrojmi, ktorý sa nachádza v dolnej alebo hornej časti obrazovky.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
index e1ac614..0557f75 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sl.xtb
@@ -55,5 +55,4 @@
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome lahko za izboljšanje izkušnje pri brskanju uporabi spletne storitve.
 Te storitve lahko morda onemogočite. <ph name="BEGIN_LINK" />Več o tem<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Nasvet za Chrome. Če želite več možnosti za zavihke, pridržite gumb za prikaz zavihkov v orodni vrstici na dnu ali vrhu zaslona.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
index f2cdcc3..895ada3 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sr.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Изабрани подаци су уклоњени из Chrome-а и са синхронизованих уређаја. Google налог можда има друге облике историје прегледања, попут претрага и активности у другим Google услугама на history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome може да користи веб-услуге да би побољшао доживљај прегледања. Можете опционално да онемогућите те услуге. <ph name="BEGIN_LINK" />Сазнајте више<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Савет за Chrome. Ако желите више опција за картице, притисните и задржите дугме Прикажи картице на траци с алаткама, која се налази у дну или у врху екрана.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
index c000b15d..78eb656 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sv.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Den data som markerades har tagits bort från Chrome och från synkroniserade enheter. Det kan finnas andra former av webbhistorik i Google-kontot på history.google.com, t.ex. sökningar och aktivitet på andra tjänster från Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome kan använda webbtjänster för att förbättra din upplevelse på webben. Du kan inaktivera dessa tjänster om du vill. <ph name="BEGIN_LINK" />Läs mer<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Tips för Chrome. Tryck länge på Visa flikar i verktygsfältet så visas fler flikalternativ. Du hittar verktygsfältet längst ned eller högst upp på skärmen.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
index a12eab5b..cca3fe2 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_sw.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Data uliyochagua imeondolewa kwenye Chrome na kwenye vifaa vilivyosawazishwa. Huenda Akaunti yako ya Google ina aina nyingine za historia ya mambo uliyovinjari kama vile mambo uliyotafuta na shughuli kutoka huduma nyingine za Google katika history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Huenda Google Chrome ikatumia huduma za wavuti kuboresha hali yako ya kuvinjari. Unaweza chagua kuzima huduma hizi. <ph name="BEGIN_LINK" />Pata maelezo zaidi<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Kidokezo cha Chrome. Ili upate chaguo zaidi za vichupo, bonyeza na ushikilie kitufe cha Onyesha Vichupo katika upau wa vidhibiti unaopatikana sehemu ya chini au ya juu ya skrini yako.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
index 99a5c8f..3d9cc8a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_ta.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">தேர்ந்தெடுத்த தரவு Chrome மற்றும் ஒத்திசைக்கப்பட்ட சாதனங்களிலிருந்து அகற்றப்பட்டது. உங்கள் Google கணக்கு history.google.com எனும் தளத்தில் பிற Google சேவைகளிலிருந்து தேடல்கள், செயல்பாடு போன்ற உலாவல் வரலாறு தொடர்பான பிற தகவல்களைக் கொண்டிருக்கலாம்.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">உங்கள் உலாவல் அனுபவத்தை மேம்படுத்த இணைய சேவைகளை Google Chrome பயன்படுத்தலாம். விருப்பத்திற்கேற்ப இந்தச் சேவைகளை நீங்கள் முடக்கலாம். <ph name="BEGIN_LINK" />மேலும் அறிக<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome உதவிக்குறிப்பு. மேலும் அதிக தாவல் விருப்பங்களைப் பார்க்க, கருவிப்பட்டியிலுள்ள ‘தாவல்களைக் காட்டு’ பட்டனை அழுத்திப் பிடித்திருக்கவும். அந்த பட்டன், திரையின் அடிப்பகுதியில் அல்லது மேல்பகுதியில் இருக்கும்.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
index 0dc76ad..4a26640 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_te.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">ఎంచుకోబడిన డేటా Chromeతో పాటు, సింక్ చేసిన‌ పరికరాల నుండి తీసివేయబడింది. మీ Google ఖాతా history.google.comలో ఇతర Google సేవలకు సంబంధించిన శోధనలు, కార్య‌క‌లాపాల‌ వంటి ఇతర రకాల బ్రౌజింగ్ చరిత్రను కలిగి ఉండవచ్చు.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome మీ బ్రౌజింగ్ అనుభవాన్ని మెరుగుపరచడానికి వెబ్ సేవ‌లు ఉపయోగించవచ్చు. మీరు ఈ సేవ‌లు ఐచ్ఛికంగా నిలిపివేయవచ్చు. <ph name="BEGIN_LINK" />మరింత తెలుసుకోండి<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome చిట్కా. మరిన్ని ట్యాబ్ ఎంపికల కోసం, మీ స్క్రీన్‌లో పైన కానీ దిగువన కానీ ఉండే సాధనాల బార్‌లో ట్యాబ్‌లను చూపు బటన్‌ను నొక్కి పట్టుకోండి.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
index 27c3c7e..962013a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_th.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">ระบบได้นำข้อมูลที่เลือกไว้ออกจาก Chrome และอุปกรณ์ที่ซิงค์แล้ว บัญชี Google ของคุณอาจมีประวัติการท่องเว็บในรูปแบบอื่นๆ เช่น การค้นหาและกิจกรรมจากบริการอื่นๆ ของ Google ที่ history.google.com</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome อาจใช้บริการเว็บเพื่อปรับปรุงประสบการณ์การท่องเว็บของคุณ คุณสามารถเลือกปิดบริการเหล่านี้ได้ <ph name="BEGIN_LINK" />ดูข้อมูลเพิ่มเติม<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">เคล็ดลับสำหรับ Chrome ถ้าต้องการดูตัวเลือกแท็บเพิ่มเติม ให้กดปุ่ม "แสดงแท็บ" ค้างไว้ในแถบเครื่องมือ ซึ่งอยู่ที่ด้านล่างหรือด้านบนของหน้าจอ</translation>
 </translationbundle>
\ No newline at end of file
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 dbc94ac..a24c299 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
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Seçilen veriler Chrome'dan ve senkronize edilen cihazlardan kaldırıldı. Diğer Google hizmetlerinden yapılan aramalar ve etkinlikler gibi Google Hesabınızla ilişkili başka biçimlerde tarama geçmişi history.google.com adresinde bulunabilir.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome, göz atma deneyiminizi iyileştirmek için web hizmetleri kullanabilir. İsterseniz, bu hizmetleri devre dışı bırakabilirsiniz. <ph name="BEGIN_LINK" />Daha fazla bilgi edinin<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome için ipucu: Sekmelerle ilgili daha fazla seçenek görmek için ekranınızın altında veya üstünde görünen araç çubuğunda Sekmeleri Göster düğmesini basılı tutun.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
index eda12f2..80aa229 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_uk.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Вибрані дані видалено з Chrome і синхронізованих пристроїв. У вашому обліковому записі Google на сторінці history.google.com можуть бути додаткові форми історії веб-перегляду, як-от пошукові запити чи активність в інших службах Google.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome може покращувати веб-перегляд за допомогою веб-служб. Ви можете вимкнути ці служби. <ph name="BEGIN_LINK" />Докладніше<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Порада щодо Chrome. Щоб відкрити більше параметрів, утримуйте кнопку "Показати вкладки" на панелі інструментів, розташованій унизу або вгорі екрана.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
index bd76b93..b59665a 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_vi.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">Dữ liệu được chọn đã bị xóa khỏi Chrome và các thiết bị được đồng bộ hóa. Tài khoản Google của bạn có thể có các dạng lịch sử duyệt web khác, chẳng hạn như tìm kiếm và hoạt động từ các dịch vụ khác của Google tại history.google.com.</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome có thể sử dụng dịch vụ web để cải thiện trải nghiệm duyệt web của bạn. Bạn có thể tùy ý vô hiệu hóa các dịch vụ này. <ph name="BEGIN_LINK" />Tìm hiểu thêm<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Mẹo dành cho Chrome. Để xem thêm các tùy chọn về tab, hãy nhấn và giữ nút Hiển thị tab trên thanh công cụ ở đầu hoặc cuối màn hình.</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
index 813e37c..961de02b 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-CN.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">所选数据已从 Chrome 和同步的设备中移除。不过,您的 Google 帐号在 history.google.com 上可能有其他形式的浏览记录(例如,在其他 Google 服务中的搜索记录和活动记录)。</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome 可能会使用网络服务来改善您的浏览体验。不过,您可以选择停用这些服务。<ph name="BEGIN_LINK" />了解详情<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome 提示。要查看更多标签页选项,请按住工具栏(位于屏幕底部或顶部)中的“显示标签页”按钮。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
index 1b432c7..65763d9 100644
--- a/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_google_chrome_strings_zh-TW.xtb
@@ -54,5 +54,4 @@
 <translation id="8459495907675268833">系統已將您所選取的資料從 Chrome 和其他同步的裝置中移除。您的 Google 帳戶仍可能保留了其他類型的瀏覽記錄,例如其他 Google 服務中的搜尋和活動記錄 (可前往 history.google.com 查詢)。</translation>
 <translation id="8540666473246803645">Google Chrome</translation>
 <translation id="8606668294522778825">Google Chrome 可能會使用網路服務改善您的瀏覽體驗。不過,您可以選擇停用這些服務。<ph name="BEGIN_LINK" />瞭解詳情<ph name="END_LINK" /></translation>
-<translation id="96145293669295453">Chrome 提示。如需更多分頁選項,請按住工具列 (位於畫面底部或頂端) 中的 [顯示分頁] 按鈕。</translation>
 </translationbundle>
\ No newline at end of file
diff --git a/ios/chrome/app/strings/resources/ios_strings_am.xtb b/ios/chrome/app/strings/resources/ios_strings_am.xtb
index e09ad3a..f60949c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_am.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_am.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">አድራሻ 1</translation>
 <translation id="1545749641540134597">የኪውአር ኮድ ይቃኙ</translation>
 <translation id="1552525382687785070">ስምረት በእርስዎ አስተዳዳሪ ተሰናክሏል</translation>
-<translation id="1558704936695638228">ለተጨማሪ የትር አማራጮች ጫን ብለው ይያዙ</translation>
 <translation id="1580783302095112590">መልዕክት ተልኳል።</translation>
 <translation id="1582732959743469162">ይህ መተግበሪያ ለአሁኑ ውርድዎ ሁሉንም ሂደት ያቆማል።</translation>
 <translation id="1605658421715042784">ምስሉን ገልብጥ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ar.xtb b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
index 7394d1e..5a57c7d 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ar.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ar.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">العنوان 1</translation>
 <translation id="1545749641540134597">فحص رمز الاستجابة السريعة</translation>
 <translation id="1552525382687785070">تم إيقاف المزامنة من قِبل المشرف</translation>
-<translation id="1558704936695638228">يُرجى الضغط مع الاستمرار لعرض مزيد من خيارات علامة التبويب</translation>
 <translation id="1580783302095112590">تم إرسال البريد.</translation>
 <translation id="1582732959743469162">سيؤدي ذلك إلى إيقاف تقدّم جميع عمليات التنزيل الحالية.</translation>
 <translation id="1605658421715042784">نسخ الصورة</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bg.xtb b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
index 62acaf9..70367f7c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bg.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bg.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Адрес 1</translation>
 <translation id="1545749641540134597">Сканирайте код за бърза реакция</translation>
 <translation id="1552525382687785070">Синхронизирането е деактивирано от администратора ви</translation>
-<translation id="1558704936695638228">Натиснете и задръжте, за да видите още опции за раздела</translation>
 <translation id="1580783302095112590">Пощата е изпратена.</translation>
 <translation id="1582732959743469162">Текущото изтегляне ще бъде прекратено.</translation>
 <translation id="1605658421715042784">Копиране на изображението</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_bn.xtb b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
index 6547726..73279f7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_bn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_bn.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">ঠিকানা ১</translation>
 <translation id="1545749641540134597">QR কোড স্ক্যান করুন</translation>
 <translation id="1552525382687785070">আপনার অ্যাডমিনিস্ট্রেটর সিঙ্ক 'বন্ধ' করে দিয়েছে</translation>
-<translation id="1558704936695638228">আরও ট্যাব বিকল্পগুলির জন্য বোতাম প্রেস করে ধরে রাখুন</translation>
 <translation id="1580783302095112590">মেল পাঠানো হয়েছে৷</translation>
 <translation id="1582732959743469162">এর ফলে আপনি এখন যা ডাউনলোড করছেন সেগুলি সব বন্ধ হয়ে যাবে।</translation>
 <translation id="1605658421715042784">ছবি কপি করুন</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ca.xtb b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
index 036f7e0..3b6c530 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ca.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ca.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adreça 1</translation>
 <translation id="1545749641540134597">Escaneja el codi QR</translation>
 <translation id="1552525382687785070">L'administrador ha desactivat la sincronització</translation>
-<translation id="1558704936695638228">Mantén premut el botó per veure més opcions de les pestanyes</translation>
 <translation id="1580783302095112590">Correu enviat.</translation>
 <translation id="1582732959743469162">S'aturarà completament la baixada actual.</translation>
 <translation id="1605658421715042784">Copia la imatge</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_cs.xtb b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
index b85aa020..82d2af3 100644
--- a/ios/chrome/app/strings/resources/ios_strings_cs.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_cs.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">První řádek adresy</translation>
 <translation id="1545749641540134597">Naskenovat QR kód</translation>
 <translation id="1552525382687785070">Synchronizaci administrátor zakázal</translation>
-<translation id="1558704936695638228">Podržením zobrazíte další možnosti karet</translation>
 <translation id="1580783302095112590">E-mail byl odeslán.</translation>
 <translation id="1582732959743469162">Tímto zastavíte veškerý postup aktuálního stahování.</translation>
 <translation id="1605658421715042784">Kopírovat obrázek</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_da.xtb b/ios/chrome/app/strings/resources/ios_strings_da.xtb
index c21dd48..00ba1c06 100644
--- a/ios/chrome/app/strings/resources/ios_strings_da.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_da.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresse 1</translation>
 <translation id="1545749641540134597">Scan QR-kode</translation>
 <translation id="1552525382687785070">Din administrator har deaktiveret synkronisering</translation>
-<translation id="1558704936695638228">Hold fingeren nede for at se flere fanemuligheder</translation>
 <translation id="1580783302095112590">Email sendt.</translation>
 <translation id="1582732959743469162">Denne handling stopper den aktuelle download.</translation>
 <translation id="1605658421715042784">Kopiér billede</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_de.xtb b/ios/chrome/app/strings/resources/ios_strings_de.xtb
index 80f4c54..7ff7989 100644
--- a/ios/chrome/app/strings/resources/ios_strings_de.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_de.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresse 1</translation>
 <translation id="1545749641540134597">QR-Code scannen</translation>
 <translation id="1552525382687785070">Die Synchronisierung wurde von Ihrem Administrator deaktiviert</translation>
-<translation id="1558704936695638228">Für weitere Tab-Optionen gedrückt halten</translation>
 <translation id="1580783302095112590">E-Mail gesendet</translation>
 <translation id="1582732959743469162">Hierdurch wird Ihrer aktueller Download abgebrochen.</translation>
 <translation id="1605658421715042784">Bild kopieren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_el.xtb b/ios/chrome/app/strings/resources/ios_strings_el.xtb
index edb3d09..b6e5ced 100644
--- a/ios/chrome/app/strings/resources/ios_strings_el.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_el.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Διεύθυνση 1</translation>
 <translation id="1545749641540134597">Σάρωση κωδικού QR</translation>
 <translation id="1552525382687785070">Ο συγχρονισμός έχει απενεργοποιηθεί από τον διαχειριστή σας</translation>
-<translation id="1558704936695638228">Πατήστε παρατεταμένα για περισσότερες επιλογές καρτέλας</translation>
 <translation id="1580783302095112590">Το μήνυμα εστάλη.</translation>
 <translation id="1582732959743469162">Αυτό θα σταματήσει όλη την πρόοδο για την τρέχουσα λήψη.</translation>
 <translation id="1605658421715042784">Αντιγραφή εικόνας</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
index de81b1c..59701ca6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_en-GB.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Address 1</translation>
 <translation id="1545749641540134597">Scan QR Code</translation>
 <translation id="1552525382687785070">Sync is Disabled by your Administrator</translation>
-<translation id="1558704936695638228">Press and hold for more tab options</translation>
 <translation id="1580783302095112590">Mail sent.</translation>
 <translation id="1582732959743469162">This will stop all progress for your current download.</translation>
 <translation id="1605658421715042784">Copy image</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
index 92e5807f..b721148 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es-419.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Dirección 1</translation>
 <translation id="1545749641540134597">Escanear código QR</translation>
 <translation id="1552525382687785070">Tu administrador inhabilitó la sincronización</translation>
-<translation id="1558704936695638228">Mantén presionado el botón para obtener más opciones de pestañas</translation>
 <translation id="1580783302095112590">Correo enviado</translation>
 <translation id="1582732959743469162">Esta acción detendrá el progreso de la descarga actual.</translation>
 <translation id="1605658421715042784">Copiar imagen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_es.xtb b/ios/chrome/app/strings/resources/ios_strings_es.xtb
index 1137a735..2324262 100644
--- a/ios/chrome/app/strings/resources/ios_strings_es.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_es.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Dirección 1</translation>
 <translation id="1545749641540134597">Escanea el código QR</translation>
 <translation id="1552525382687785070">El administrador ha inhabilitado la sincronización</translation>
-<translation id="1558704936695638228">Mantén pulsado para ver más opciones de las pestañas</translation>
 <translation id="1580783302095112590">Correo enviado</translation>
 <translation id="1582732959743469162">Esta acción detendrá el progreso de la descarga actual.</translation>
 <translation id="1605658421715042784">Copiar imagen</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_et.xtb b/ios/chrome/app/strings/resources/ios_strings_et.xtb
index c1926cd..bd9182f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_et.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_et.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Aadress 1</translation>
 <translation id="1545749641540134597">QR-koodi skannimine</translation>
 <translation id="1552525382687785070">Administraator on sünkroonimise keelanud</translation>
-<translation id="1558704936695638228">Vahelehe lisavalikute nägemiseks vajutage pikalt</translation>
 <translation id="1580783302095112590">Meil on saadetud.</translation>
 <translation id="1582732959743469162">See peatab praeguse allalaadimise edenemise.</translation>
 <translation id="1605658421715042784">Kopeeri pilt</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fa.xtb b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
index fc5400d..28390f02 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fa.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fa.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">آدرس ۱</translation>
 <translation id="1545749641540134597">‏اسکن کد QR</translation>
 <translation id="1552525382687785070">سرپرستتان همگام‌سازی را غیرفعال کرده است</translation>
-<translation id="1558704936695638228">برای گزینه‌های بیشتر برگه، فشار دهید و نگه دارید</translation>
 <translation id="1580783302095112590">نامه ارسال شد.</translation>
 <translation id="1582732959743469162">با این کار کل پیشرفت بارگیری کنونی‌تان متوقف خواهد شد.</translation>
 <translation id="1605658421715042784">کپی تصویر</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fi.xtb b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
index ab71e48..3f5ab29 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fi.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Osoite 1</translation>
 <translation id="1545749641540134597">Skannaa QR-koodi</translation>
 <translation id="1552525382687785070">Järjestelmänvalvoja on poistanut synkronoinnin käytöstä</translation>
-<translation id="1558704936695638228">Näytä lisää välilehtiasetuksia painamalla pitkään</translation>
 <translation id="1580783302095112590">Viesti lähetetty.</translation>
 <translation id="1582732959743469162">Tämä keskeyttää nykyisen latauksen edistymisen.</translation>
 <translation id="1605658421715042784">Kopioi kuva</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fil.xtb b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
index 58a660ef7..9127b2f 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fil.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fil.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Address 1</translation>
 <translation id="1545749641540134597">I-scan ang QR Code</translation>
 <translation id="1552525382687785070">Na-disable ng Iyong Administrator ang Pag-sync</translation>
-<translation id="1558704936695638228">Pindutin nang matagal para sa higit pang opsyon sa tab</translation>
 <translation id="1580783302095112590">Naipadala na ang mail.</translation>
 <translation id="1582732959743469162">Ihihinto nito ang lahat ng progreso para sa iyong kasalukuyang pag-download.</translation>
 <translation id="1605658421715042784">Kopyahin ang Larawan</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">Hilingin ang Pang-mobile na Site</translation>
 <translation id="2381405137052800939">Mga Pangunahing Kaalaman</translation>
 <translation id="2386793615875593361">1 ang napili</translation>
+<translation id="2421044535038393232">Magpatuloy sa Pag-edit</translation>
 <translation id="2435457462613246316">Ipakita ang password</translation>
 <translation id="2481538920734869610">MAGDAGDAG NG ACCOUNT</translation>
 <translation id="2497852260688568942">Na-disable ng iyong administrator ang pag-sync</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">Tingnan ang Offline na Bersyon sa Bagong Tab</translation>
 <translation id="4181841719683918333">Mga Wika</translation>
 <translation id="424315890655130736">Ilagay ang Passphrase</translation>
+<translation id="4263576668337963058">Ipakita ang mga available na pagkilos sa page</translation>
 <translation id="4272631900155121838">Upang mag-scan ng QR code, i-enable ang camera mula sa mga setting</translation>
 <translation id="4281844954008187215">Mga Tuntunin ng Serbisyo</translation>
 <translation id="430793432425771671">I-sync Lahat</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_fr.xtb b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
index 1ff16bd8f..4ef881ad 100644
--- a/ios/chrome/app/strings/resources/ios_strings_fr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_fr.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresse 1</translation>
 <translation id="1545749641540134597">Scanner le code QR</translation>
 <translation id="1552525382687785070">Votre administrateur a désactivé la synchronisation</translation>
-<translation id="1558704936695638228">Appuyez de manière prolongée pour afficher plus d'options de l'onglet</translation>
 <translation id="1580783302095112590">E-mail envoyé.</translation>
 <translation id="1582732959743469162">Cette action arrêtera le téléchargement en cours.</translation>
 <translation id="1605658421715042784">Copier l'image</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_gu.xtb b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
index 27e2f9b..0542dff 100644
--- a/ios/chrome/app/strings/resources/ios_strings_gu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_gu.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">સરનામું 1</translation>
 <translation id="1545749641540134597">QR કોડ સ્કેન કરો</translation>
 <translation id="1552525382687785070">સિંક કરવાનું તમારા વ્યવસ્થાપક દ્વારા બંધ કરવામાં આવ્યું છે</translation>
-<translation id="1558704936695638228">વધુ ટૅબ વિકલ્પો માટે દબાવી રાખો</translation>
 <translation id="1580783302095112590">મેઇલ મોકલ્યો છે.</translation>
 <translation id="1582732959743469162">આનાથી તમારું હાલનું ડાઉનલોડ આગળ વધતું અટકી જશે.</translation>
 <translation id="1605658421715042784">છબી કૉપિ કરો</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hi.xtb b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
index 1f2463f..cf20668 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hi.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">पता 1</translation>
 <translation id="1545749641540134597">QR कोड स्कैन करें</translation>
 <translation id="1552525382687785070">आपके एडमिन ने सिंक करने की सुविधा बंद कर दी है</translation>
-<translation id="1558704936695638228">टैब के और विकल्प देखने के लिए दबाकर रखें</translation>
 <translation id="1580783302095112590">मेल भेजा गया.</translation>
 <translation id="1582732959743469162">यह आपके इस समय हो रहे सभी डाउनलोड को बंद कर देगा.</translation>
 <translation id="1605658421715042784">इमेज की कॉपी करें</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">मोबाइल साइट का अनुरोध करें</translation>
 <translation id="2381405137052800939">मूलभूत बातें</translation>
 <translation id="2386793615875593361">1 चयनित</translation>
+<translation id="2421044535038393232">बदलाव करते रहें</translation>
 <translation id="2435457462613246316">पासवर्ड दिखाएं</translation>
 <translation id="2481538920734869610">खाता जोड़ें</translation>
 <translation id="2497852260688568942">सिंक को आपके व्यवस्थापक ने अक्षम कर दिया है</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">ऑफ़लाइन वर्शन को नए टैब में देखें</translation>
 <translation id="4181841719683918333">भाषाएं</translation>
 <translation id="424315890655130736">पासफ़्रेज़ डालें</translation>
+<translation id="4263576668337963058">उपलब्ध पेज की कार्रवाइयां दिखाएं</translation>
 <translation id="4272631900155121838">कोई QR कोड स्कैन करने के लिए, सेटिंग से कैमरा चालू करें</translation>
 <translation id="4281844954008187215">सेवा की शर्तें</translation>
 <translation id="430793432425771671">सब कुछ सिंक करें</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hr.xtb b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
index 248db87a..3421a8f0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hr.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">1. adresni redak</translation>
 <translation id="1545749641540134597">Skeniranje QR koda</translation>
 <translation id="1552525382687785070">Administrator je onemogućio sinkronizaciju</translation>
-<translation id="1558704936695638228">Pritisnite i zadržite za više opcija za karticu</translation>
 <translation id="1580783302095112590">Poruka je poslana.</translation>
 <translation id="1582732959743469162">Time će se zaustaviti trenutačno preuzimanje i izbrisati sve što je dosad preuzeto.</translation>
 <translation id="1605658421715042784">Kopiraj sliku</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_hu.xtb b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
index 9c7f4a68..738e18e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_hu.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_hu.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Cím 1. sora</translation>
 <translation id="1545749641540134597">QR-kód beolvasása</translation>
 <translation id="1552525382687785070">A szinkronizálást letiltotta a rendszergazda</translation>
-<translation id="1558704936695638228">Nyomva tartva további lapbeállításokat láthat</translation>
 <translation id="1580783302095112590">Levél elküldve.</translation>
 <translation id="1582732959743469162">Ezzel leállítja az aktuális letöltést.</translation>
 <translation id="1605658421715042784">Kép másolása</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_id.xtb b/ios/chrome/app/strings/resources/ios_strings_id.xtb
index b80bffb..0ea410a7 100644
--- a/ios/chrome/app/strings/resources/ios_strings_id.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_id.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Alamat 1</translation>
 <translation id="1545749641540134597">Pindai Kode QR</translation>
 <translation id="1552525382687785070">Sinkronisasi Dinonaktifkan oleh Administrator Anda</translation>
-<translation id="1558704936695638228">Tekan dan tahan untuk menampilkan opsi tab lainnya</translation>
 <translation id="1580783302095112590">Email terkirim.</translation>
 <translation id="1582732959743469162">Ini akan menghentikan semua progres download Anda saat ini.</translation>
 <translation id="1605658421715042784">Salin Gambar</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_it.xtb b/ios/chrome/app/strings/resources/ios_strings_it.xtb
index 5f152d7..3dd9cd35 100644
--- a/ios/chrome/app/strings/resources/ios_strings_it.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_it.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Indirizzo 1</translation>
 <translation id="1545749641540134597">Scansiona codice QR</translation>
 <translation id="1552525382687785070">Sincronizzazione disattivata dall'amministratore</translation>
-<translation id="1558704936695638228">Tieni premuto per vedere maggiori opzioni sulla scheda</translation>
 <translation id="1580783302095112590">Messaggio inviato.</translation>
 <translation id="1582732959743469162">Verrà interrotto l'avanzamento del tuo download attuale.</translation>
 <translation id="1605658421715042784">Copia immagine</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_iw.xtb b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
index bb890195..0332bc8 100644
--- a/ios/chrome/app/strings/resources/ios_strings_iw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_iw.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">כתובת, שורה 1</translation>
 <translation id="1545749641540134597">‏סריקת קוד QR</translation>
 <translation id="1552525382687785070">מנהל המערכת השבית את הסנכרון</translation>
-<translation id="1558704936695638228">לחיצה ארוכה תציג עוד אפשרויות כרטיסייה</translation>
 <translation id="1580783302095112590">הדואר נשלח.</translation>
 <translation id="1582732959743469162">הפעולה תפסיק את ההורדה הנוכחית.</translation>
 <translation id="1605658421715042784">העתקת התמונה</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">בקשת אתר לנייד</translation>
 <translation id="2381405137052800939">הגדרות בסיסיות</translation>
 <translation id="2386793615875593361">נבחרה תמונה אחת</translation>
+<translation id="2421044535038393232">המשך העריכה</translation>
 <translation id="2435457462613246316">הצג סיסמה</translation>
 <translation id="2481538920734869610">הוספת חשבון</translation>
 <translation id="2497852260688568942">מנהל המערכת שלך השבית את הסנכרון</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">הצג גרסה לא מקוונת בכרטיסייה חדשה</translation>
 <translation id="4181841719683918333">שפות</translation>
 <translation id="424315890655130736">הזנת ביטוי סיסמה</translation>
+<translation id="4263576668337963058">הצגה של פעולות זמינות בדף</translation>
 <translation id="4272631900155121838">‏כדי לסרוק את קוד ה-QR, הפעל את המצלמה דרך ההגדרות</translation>
 <translation id="4281844954008187215">תנאי שירות</translation>
 <translation id="430793432425771671">סנכרון הכל</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ja.xtb b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
index 978fad2..9eb002c 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ja.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ja.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">住所1行目</translation>
 <translation id="1545749641540134597">QR コードをスキャンします</translation>
 <translation id="1552525382687785070">同期は管理者により無効にされています</translation>
-<translation id="1558704936695638228">押し続けて他のタブオプションを見る</translation>
 <translation id="1580783302095112590">メールを送信しました。</translation>
 <translation id="1582732959743469162">この操作を行うと、現在進行中のダウンロードは停止します。</translation>
 <translation id="1605658421715042784">画像をコピー</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_kn.xtb b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
index d06596a..8004435 100644
--- a/ios/chrome/app/strings/resources/ios_strings_kn.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_kn.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">ವಿಳಾಸ 1</translation>
 <translation id="1545749641540134597">QR ಕೋಡ್ ಸ್ಕ್ಯಾನ್ ಮಾಡಿ</translation>
 <translation id="1552525382687785070">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
-<translation id="1558704936695638228">ಹೆಚ್ಚಿನ ಟ್ಯಾಬ್ ಆಯ್ಕೆಗಳಿಗೆ ಬಟನ್ ಅನ್ನು ಒತ್ತಿ ಹಿಡಿದುಕೊಳ್ಳಿ</translation>
 <translation id="1580783302095112590">ಮೇಲ್ ಕಳುಹಿಸಲಾಗಿದೆ.</translation>
 <translation id="1582732959743469162">ಇದು ನಿಮ್ಮ ಪ್ರಸ್ತುತ ಡೌನ್‌ಲೋಡ್‌ಗಾಗಿ ಎಲ್ಲಾ ಪ್ರಕ್ರಿಯೆಗಳನ್ನು ನಿಲ್ಲಿಸುತ್ತದೆ.</translation>
 <translation id="1605658421715042784">ಚಿತ್ರವನ್ನು ನಕಲಿಸಿ</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">ಮೊಬೈಲ್ ಸೈಟ್‌ ಅನ್ನು ವಿನಂತಿಸಿ</translation>
 <translation id="2381405137052800939">ಪ್ರಾಥಮಿಕ ಸಂಗತಿಗಳು</translation>
 <translation id="2386793615875593361">1 ಆಯ್ಕೆಮಾಡಿದೆ</translation>
+<translation id="2421044535038393232">ಎಡಿಟ್‌ ಮಾಡುತ್ತಿರಿ</translation>
 <translation id="2435457462613246316">ಪಾಸ್‌ವರ್ಡ್ ಅನ್ನು ತೋರಿಸಿ</translation>
 <translation id="2481538920734869610">ಖಾತೆ ಸೇರಿಸಿ</translation>
 <translation id="2497852260688568942">ನಿಮ್ಮ ನಿರ್ವಾಹಕರು ಸಿಂಕ್ ಅನ್ನು ನಿಷ್ಕ್ರಿಯಗೊಳಿಸಿದ್ದಾರೆ</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">ಆಫ್‌ಲೈನ್ ಆವೃತ್ತಿಯನ್ನು ಹೊಸ ಟ್ಯಾಬ್‌ನಲ್ಲಿ ವೀಕ್ಷಿಸಿ</translation>
 <translation id="4181841719683918333">ಭಾಷೆಗಳು</translation>
 <translation id="424315890655130736">ಪಾಸ್‌ಫ್ರೇಸ್ ನಮೂದಿಸಿ</translation>
+<translation id="4263576668337963058">ಲಭ್ಯವಿರುವ ಪುಟದ ಕ್ರಿಯೆಗಳನ್ನು ತೋರಿಸಿ</translation>
 <translation id="4272631900155121838">QR ಕೋಡ್ ಅನ್ನು ಸ್ಕ್ಯಾನ್ ಮಾಡಲು, ಸೆಟ್ಟಿಂಗ್‌ಗಳಿಂದ ಕ್ಯಾಮರಾವನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿ</translation>
 <translation id="4281844954008187215">ಸೇವೆಯ ನಿಯಮಗಳು</translation>
 <translation id="430793432425771671">ಪ್ರತಿಯೊಂದನ್ನು ಸಿಂಕ್ ಮಾಡಿ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ko.xtb b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
index 365d534..98acbc5 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ko.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ko.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">주소 1</translation>
 <translation id="1545749641540134597">QR 코드 스캔</translation>
 <translation id="1552525382687785070">관리자가 동기화를 사용 중지했습니다.</translation>
-<translation id="1558704936695638228">더 많은 탭 옵션을 보려면 길게 누르세요.</translation>
 <translation id="1580783302095112590">메일이 전송되었습니다.</translation>
 <translation id="1582732959743469162">현재 진행 중인 다운로드가 모두 중지됩니다.</translation>
 <translation id="1605658421715042784">이미지 복사</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lt.xtb b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
index 43f60492..5b79cc92 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lt.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lt.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">1 adreso eil.</translation>
 <translation id="1545749641540134597">Nuskaitykite QR kodą</translation>
 <translation id="1552525382687785070">Sinchronizavimą išjungė jūsų administratorius</translation>
-<translation id="1558704936695638228">Paspauskite ir palaikykite, kad būtų pateikta daugiau skirtukų parinkčių</translation>
 <translation id="1580783302095112590">El. laiškas išsiųstas.</translation>
 <translation id="1582732959743469162">Bus sustabdytas dabartinis atsisiuntimas.</translation>
 <translation id="1605658421715042784">Kopijuoti vaizdą</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_lv.xtb b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
index 24707ba..d74aee4 100644
--- a/ios/chrome/app/strings/resources/ios_strings_lv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_lv.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">1. adrese</translation>
 <translation id="1545749641540134597">Skenējiet QR kodu</translation>
 <translation id="1552525382687785070">Administrators ir atspējojis sinhronizēšanu</translation>
-<translation id="1558704936695638228">Lai atvērtu citas ciļņu opcijas, nospiediet un turiet.</translation>
 <translation id="1580783302095112590">E-pasts nosūtīts.</translation>
 <translation id="1582732959743469162">Šādi tiks pārtraukta pašreizējās lejupielādes norise.</translation>
 <translation id="1605658421715042784">Kopēt attēlu</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ml.xtb b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
index 00d2d2a..a2018a1 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ml.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ml.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">വിലാസം 1</translation>
 <translation id="1545749641540134597">QR കോഡ് സ്‌കാൻ ചെയ്യുക</translation>
 <translation id="1552525382687785070">നിങ്ങളുടെ അഡ്‌മിൻ സമന്വയം പ്രവർത്തനരഹിതമാക്കി</translation>
-<translation id="1558704936695638228">കൂടുതൽ ടാബ് ഓപ്ഷനുകൾക്കായി അമർത്തിപ്പിടിക്കുക</translation>
 <translation id="1580783302095112590">മെയിൽ അയച്ചു.</translation>
 <translation id="1582732959743469162">ഇത്, നിലവിലെ ഡൗൺലോഡിന്റെ എല്ലാ പുരോഗതിയും നിർത്തും.</translation>
 <translation id="1605658421715042784">ചിത്രം പകർത്തുക</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_mr.xtb b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
index a86e521..15af2e80 100644
--- a/ios/chrome/app/strings/resources/ios_strings_mr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_mr.xtb
@@ -47,7 +47,6 @@
 <translation id="1540800554400757039">पत्ता 1</translation>
 <translation id="1545749641540134597">QR कोड स्कॅन करा</translation>
 <translation id="1552525382687785070">तुमच्या ॲडमिनिस्ट्रेटरने सिंक बंद केले आहे</translation>
-<translation id="1558704936695638228">अधिक टॅब पर्यायांसाठी दाबा आणि धरून ठेवा</translation>
 <translation id="1580783302095112590">मेल पाठवले.</translation>
 <translation id="1582732959743469162">यामुळे तुमच्या सुरू असलेल्या डाउनलोडची पुढची सर्व प्रगती थांबेल.</translation>
 <translation id="1605658421715042784">इमेज कॉपी करा</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ms.xtb b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
index b1f475d5..a00166e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ms.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ms.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Alamat 1</translation>
 <translation id="1545749641540134597">Imbas Kod QR</translation>
 <translation id="1552525382687785070">Penyegerakan Dilumpuhkan oleh Pentadbir Anda</translation>
-<translation id="1558704936695638228">Tekan dan tahan untuk mendapatkan lagi pilihan tab</translation>
 <translation id="1580783302095112590">Mel dihantar.</translation>
 <translation id="1582732959743469162">Ini akan menghentikan semua kemajuan bagi muat turun semasa anda.</translation>
 <translation id="1605658421715042784">Salin Imej</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_nl.xtb b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
index 2d6f8fd1..a5b8f20 100644
--- a/ios/chrome/app/strings/resources/ios_strings_nl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_nl.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adres 1</translation>
 <translation id="1545749641540134597">QR-code scannen</translation>
 <translation id="1552525382687785070">Synchronisatie is uitgeschakeld door de beheerder</translation>
-<translation id="1558704936695638228">Tik hierop en houd vast voor meer opties voor tabbladen</translation>
 <translation id="1580783302095112590">E-mail verzonden.</translation>
 <translation id="1582732959743469162">Hiermee wordt de voortgang van de huidige download gestopt.</translation>
 <translation id="1605658421715042784">Afbeelding kopiëren</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_no.xtb b/ios/chrome/app/strings/resources/ios_strings_no.xtb
index cef8004e..8f7d184 100644
--- a/ios/chrome/app/strings/resources/ios_strings_no.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_no.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresse 1</translation>
 <translation id="1545749641540134597">Skann en QR-kode</translation>
 <translation id="1552525382687785070">Administratoren din har slått av synkronisering</translation>
-<translation id="1558704936695638228">Trykk og hold for flere fanealternativer</translation>
 <translation id="1580783302095112590">E-posten er sendt.</translation>
 <translation id="1582732959743469162">Dette stopper all fremdriften for den aktive nedlastingen.</translation>
 <translation id="1605658421715042784">Kopiér bildet</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pl.xtb b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
index ae691f4..82f7f2b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pl.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adres 1</translation>
 <translation id="1545749641540134597">Zeskanuj kod QR</translation>
 <translation id="1552525382687785070">Administrator wyłączył synchronizację</translation>
-<translation id="1558704936695638228">Naciśnij i przytrzymaj, by wyświetlić więcej opcji kart</translation>
 <translation id="1580783302095112590">E-mail wysłany.</translation>
 <translation id="1582732959743469162">Spowoduje to zatrzymanie bieżącego pobierania.</translation>
 <translation id="1605658421715042784">Kopiuj obraz</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 df9d00e..98bb94b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-BR.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Endereço 1</translation>
 <translation id="1545749641540134597">Ler código QR</translation>
 <translation id="1552525382687785070">Sincronização desativada pelo administrador</translation>
-<translation id="1558704936695638228">Toque e mantenha pressionado para ver mais opções da guia</translation>
 <translation id="1580783302095112590">Mensagem enviada.</translation>
 <translation id="1582732959743469162">Isso interromperá todo o progresso do download atual.</translation>
 <translation id="1605658421715042784">Copiar imagem</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
index 1dfe094..89144d49 100644
--- a/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_pt-PT.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Morada 1</translation>
 <translation id="1545749641540134597">Ler código QR</translation>
 <translation id="1552525382687785070">A sincronização foi desativada pelo administrador.</translation>
-<translation id="1558704936695638228">Prima sem soltar para obter mais opções de separadores.</translation>
 <translation id="1580783302095112590">Correio enviado.</translation>
 <translation id="1582732959743469162">Esta ação vai interromper totalmente o progresso da transferência atual.</translation>
 <translation id="1605658421715042784">Copiar imagem</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ro.xtb b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
index 3be0677..95a9617 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ro.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ro.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresă 1</translation>
 <translation id="1545749641540134597">Scanează codul QR</translation>
 <translation id="1552525382687785070">Sincronizarea este dezactivată de administrator</translation>
-<translation id="1558704936695638228">Apasă lung pentru mai multe opțiuni de file</translation>
 <translation id="1580783302095112590">E-mail trimis.</translation>
 <translation id="1582732959743469162">Aceasta va opri progresul descărcării actuale.</translation>
 <translation id="1605658421715042784">Copiază imaginea</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ru.xtb b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
index 26170689..2ffd0ab 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ru.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ru.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Адрес, строка 1</translation>
 <translation id="1545749641540134597">Сканирование QR-кода</translation>
 <translation id="1552525382687785070">Синхронизация отключена администратором</translation>
-<translation id="1558704936695638228">Нажмите и удерживайте, чтобы открыть дополнительные настройки вкладки</translation>
 <translation id="1580783302095112590">Сообщение отправлено.</translation>
 <translation id="1582732959743469162">Скачивание файлов будет приостановлено.</translation>
 <translation id="1605658421715042784">Копировать изображение</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sk.xtb b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
index 104af3bd..46d5ae2 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sk.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adresa 1</translation>
 <translation id="1545749641540134597">Naskenovať kód QR</translation>
 <translation id="1552525382687785070">Synchronizáciu zakázal správca</translation>
-<translation id="1558704936695638228">Pridržaním zobrazíte ďalšie možnosti karty</translation>
 <translation id="1580783302095112590">E-mail bol odoslaný.</translation>
 <translation id="1582732959743469162">Tým zastavíte ďalší postup aktuálneho sťahovania.</translation>
 <translation id="1605658421715042784">Kopírovať obrázok</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sl.xtb b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
index 0d9f539..e2510ea 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sl.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sl.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Naslov 1</translation>
 <translation id="1545749641540134597">Scan QR Code</translation>
 <translation id="1552525382687785070">Sinhronizacijo je onemogočil skrbnik</translation>
-<translation id="1558704936695638228">Pridržite za več možnosti zavihkov</translation>
 <translation id="1580783302095112590">Pošta je poslana.</translation>
 <translation id="1582732959743469162">S tem boste prekinili trenutni prenos.</translation>
 <translation id="1605658421715042784">Kopiraj sliko</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sr.xtb b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
index 7f5d306..ca49b8e 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sr.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">1. ред за адресу</translation>
 <translation id="1545749641540134597">Скенирајте QR кôд</translation>
 <translation id="1552525382687785070">Администратор је онемогућио синхронизацију</translation>
-<translation id="1558704936695638228">Притисните и задржите ако желите више опција за картице</translation>
 <translation id="1580783302095112590">Имејл је послата.</translation>
 <translation id="1582732959743469162">На тај начин ћете потпуно зауставити тренутно преузимање.</translation>
 <translation id="1605658421715042784">Копирај слику</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sv.xtb b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
index 17caeb0..450817b 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sv.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sv.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adressrad 1</translation>
 <translation id="1545749641540134597">Skanna QR-kod</translation>
 <translation id="1552525382687785070">Synkronisering har inaktiverats av administratören</translation>
-<translation id="1558704936695638228">Tryck länge för fler flikalternativ</translation>
 <translation id="1580783302095112590">E-post skickades.</translation>
 <translation id="1582732959743469162">Den pågående nedladdningen avbryts.</translation>
 <translation id="1605658421715042784">Kopiera bild</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_sw.xtb b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
index 0dfb049..a9b8e7a 100644
--- a/ios/chrome/app/strings/resources/ios_strings_sw.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_sw.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Anwani ya 1</translation>
 <translation id="1545749641540134597">Changanua Msimbo wa QR</translation>
 <translation id="1552525382687785070">Msimamizi wako Amezima Usawazishaji</translation>
-<translation id="1558704936695638228">Bonyeza na ushikilie ili uone chaguo zingine za kichupo</translation>
 <translation id="1580783302095112590">Barua imetumwa.</translation>
 <translation id="1582732959743469162">Hatua hii itasimamisha upakuaji wako wote wa sasa.</translation>
 <translation id="1605658421715042784">Nakili Picha</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_ta.xtb b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
index 24b23fb..dbef0237 100644
--- a/ios/chrome/app/strings/resources/ios_strings_ta.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_ta.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">முகவரி 1</translation>
 <translation id="1545749641540134597">QR குறியீட்டை ஸ்கேன் செய்க</translation>
 <translation id="1552525382687785070">உங்கள் நிர்வாகி ஒத்திசைவை முடக்கியுள்ளார்</translation>
-<translation id="1558704936695638228">மேலும் தாவல் விருப்பத்தேர்வுகளைப் பார்க்க, அழுத்திப் பிடித்திருக்கவும்</translation>
 <translation id="1580783302095112590">மின்னஞ்சல் அனுப்பப்பட்டது.</translation>
 <translation id="1582732959743469162">இவ்வாறு செய்தால் உங்களின் தற்போதைய பதிவிறக்கத்திற்கான அனைத்துச் செயல்பாடும் நிறுத்தப்படும்.</translation>
 <translation id="1605658421715042784">படத்தை நகலெடு</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">மொபைல் தளத்தைக் கோரு</translation>
 <translation id="2381405137052800939">அடிப்படைகள்</translation>
 <translation id="2386793615875593361">1 தேர்ந்தெடுப்பட்டது</translation>
+<translation id="2421044535038393232">தொடர்ந்து திருத்து</translation>
 <translation id="2435457462613246316">கடவுச்சொல்லைக் காண்பி</translation>
 <translation id="2481538920734869610">கணக்கைச் சேர்</translation>
 <translation id="2497852260688568942">உங்கள் நிர்வாகி ஒத்திசைவை முடக்கியுள்ளார்</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">புதிய தாவலில் ஆஃப்லைன் பதிப்பைக் காட்டு</translation>
 <translation id="4181841719683918333">மொழிகள்</translation>
 <translation id="424315890655130736">கடவுச்சொற்றொடரை உள்ளிடுக</translation>
+<translation id="4263576668337963058">இருக்கின்ற பக்கச் செயல்பாடுகளைக் காட்டு</translation>
 <translation id="4272631900155121838">QR குறியீட்டை ஸ்கேன் செய்ய, அமைப்புகளிலிருந்து கேமராவை இயக்கவும்</translation>
 <translation id="4281844954008187215">சேவை விதிமுறைகள்</translation>
 <translation id="430793432425771671">எல்லாவற்றையும் ஒத்திசை</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_te.xtb b/ios/chrome/app/strings/resources/ios_strings_te.xtb
index 7cc00e99..ef31360 100644
--- a/ios/chrome/app/strings/resources/ios_strings_te.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_te.xtb
@@ -47,7 +47,6 @@
 <translation id="1540800554400757039">చిరునామా 1</translation>
 <translation id="1545749641540134597">QR కోడ్‌ను స్కాన్ చేయండి</translation>
 <translation id="1552525382687785070">సింక్‌ను మీ నిర్వాహకులు నిలిపివేశారు</translation>
-<translation id="1558704936695638228">మరిన్ని ట్యాబ్ ఎంపికల కోసం నొక్కి, పట్టుకోండి</translation>
 <translation id="1580783302095112590">మెయిల్ పంపబడింది.</translation>
 <translation id="1582732959743469162">ఇది మీ ప్రస్తుత డౌన్‌లోడ్ యొక్క మొత్తం ప్రోగ్రెస్‌ను ఆపివేస్తుంది.</translation>
 <translation id="1605658421715042784">చిత్రాన్ని కాపీ చేయి</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_th.xtb b/ios/chrome/app/strings/resources/ios_strings_th.xtb
index a05a5e3..47bd2fc 100644
--- a/ios/chrome/app/strings/resources/ios_strings_th.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_th.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">ที่อยู่ 1</translation>
 <translation id="1545749641540134597">สแกนโค้ด QR</translation>
 <translation id="1552525382687785070">ผู้ดูแลระบบปิดใช้การซิงค์</translation>
-<translation id="1558704936695638228">กดค้างไว้เพื่อดูตัวเลือกแท็บอื่นๆ</translation>
 <translation id="1580783302095112590">ส่งอีเมลแล้ว</translation>
 <translation id="1582732959743469162">การดำเนินการนี้จะหยุดการดาวน์โหลดที่ดำเนินอยู่ทั้งหมด</translation>
 <translation id="1605658421715042784">คัดลอกรูปภาพ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_tr.xtb b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
index 2c42f6e9..3263fae 100644
--- a/ios/chrome/app/strings/resources/ios_strings_tr.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_tr.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Adres 1</translation>
 <translation id="1545749641540134597">QR Kodunu Tara</translation>
 <translation id="1552525382687785070">Yöneticiniz Senkronizasyonu Devre Dışı Bıraktı</translation>
-<translation id="1558704936695638228">Diğer sekme seçenekleri için basılı tutun</translation>
 <translation id="1580783302095112590">Posta gönderildi.</translation>
 <translation id="1582732959743469162">Bu, geçerli indirme işleminizin tüm ilerlemesini durduracaktır.</translation>
 <translation id="1605658421715042784">Resmi Kopyala</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_uk.xtb b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
index 9a92ec4..a6058a6 100644
--- a/ios/chrome/app/strings/resources/ios_strings_uk.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_uk.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Адреса 1</translation>
 <translation id="1545749641540134597">Сканувати QR-код</translation>
 <translation id="1552525382687785070">Ваш адміністратор вимкнув синхронізацію</translation>
-<translation id="1558704936695638228">Утримуйте, щоб відкрити більше параметрів вкладок</translation>
 <translation id="1580783302095112590">Лист надіслано.</translation>
 <translation id="1582732959743469162">Поточне завантаження зупиниться.</translation>
 <translation id="1605658421715042784">Копіювати зображення</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_vi.xtb b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
index c50e641b..534ee91 100644
--- a/ios/chrome/app/strings/resources/ios_strings_vi.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_vi.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">Địa chỉ 1</translation>
 <translation id="1545749641540134597">Quét mã QR</translation>
 <translation id="1552525382687785070">Quản trị viên của bạn đã tắt tính năng đồng bộ hóa</translation>
-<translation id="1558704936695638228">Nhấn và giữ để có thêm các tùy chọn về tab</translation>
 <translation id="1580783302095112590">Thư đã được gửi.</translation>
 <translation id="1582732959743469162">Thao tác này sẽ ngừng tất cả hoạt động tải xuống đang diễn ra.</translation>
 <translation id="1605658421715042784">Sao chép hình ảnh</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">Yêu cầu trang web dành cho thiết bị di động</translation>
 <translation id="2381405137052800939">Thông tin cơ bản</translation>
 <translation id="2386793615875593361">Đã chọn 1</translation>
+<translation id="2421044535038393232">Tiếp tục chỉnh sửa</translation>
 <translation id="2435457462613246316">Hiển thị mật khẩu</translation>
 <translation id="2481538920734869610">THÊM TÀI KHOẢN</translation>
 <translation id="2497852260688568942">Đồng bộ hóa bị quản trị viên của bạn tắt</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">Xem phiên bản ngoại tuyến trong tab mới</translation>
 <translation id="4181841719683918333">Ngôn ngữ</translation>
 <translation id="424315890655130736">Nhập cụm mật khẩu</translation>
+<translation id="4263576668337963058">Hiển thị các hành động có thể thực hiện trên trang</translation>
 <translation id="4272631900155121838">Để quét mã QR, hãy bật máy ảnh từ cài đặt</translation>
 <translation id="4281844954008187215">Điều khoản dịch vụ</translation>
 <translation id="430793432425771671">Đồng bộ hóa mọi thứ</translation>
diff --git a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
index da0e0ed..b3e76a0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-CN.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">地址第1行</translation>
 <translation id="1545749641540134597">扫描 QR 码</translation>
 <translation id="1552525382687785070">您的管理员已停用同步功能</translation>
-<translation id="1558704936695638228">按住可查看更多标签选项</translation>
 <translation id="1580783302095112590">邮件已发送。</translation>
 <translation id="1582732959743469162">这会全面停止您正在执行的下载任务。</translation>
 <translation id="1605658421715042784">复制图片</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">请求切换到移动版网站</translation>
 <translation id="2381405137052800939">基本</translation>
 <translation id="2386793615875593361">已选择 1 张</translation>
+<translation id="2421044535038393232">继续修改</translation>
 <translation id="2435457462613246316">显示密码</translation>
 <translation id="2481538920734869610">添加帐号</translation>
 <translation id="2497852260688568942">您的管理员已停用同步</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">在新标签页中查看离线版本</translation>
 <translation id="4181841719683918333">语言</translation>
 <translation id="424315890655130736">请输入密码</translation>
+<translation id="4263576668337963058">显示可用的网页操作</translation>
 <translation id="4272631900155121838">要扫描 QR 码,请从设置中启用相机功能</translation>
 <translation id="4281844954008187215">服务条款</translation>
 <translation id="430793432425771671">同步所有内容</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 9c04ded..c7aa8c0 100644
--- a/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
+++ b/ios/chrome/app/strings/resources/ios_strings_zh-TW.xtb
@@ -48,7 +48,6 @@
 <translation id="1540800554400757039">地址 1</translation>
 <translation id="1545749641540134597">掃描 QR 圖碼</translation>
 <translation id="1552525382687785070">你的管理員停用了同步功能</translation>
-<translation id="1558704936695638228">按住即可查看更多分頁選項</translation>
 <translation id="1580783302095112590">已傳送郵件。</translation>
 <translation id="1582732959743469162">目前所有下載進度都會因此停止。</translation>
 <translation id="1605658421715042784">複製圖片</translation>
@@ -109,6 +108,7 @@
 <translation id="2360196772093551345">切換為行動版網站</translation>
 <translation id="2381405137052800939">基本</translation>
 <translation id="2386793615875593361">已選取 1 張</translation>
+<translation id="2421044535038393232">繼續編輯</translation>
 <translation id="2435457462613246316">顯示密碼</translation>
 <translation id="2481538920734869610">新增帳戶</translation>
 <translation id="2497852260688568942">你的管理員停用了同步功能</translation>
@@ -228,6 +228,7 @@
 <translation id="418156467088430727">在新分頁中檢視離線版本</translation>
 <translation id="4181841719683918333">語言</translation>
 <translation id="424315890655130736">輸入通關密語</translation>
+<translation id="4263576668337963058">顯示可用的網頁動作</translation>
 <translation id="4272631900155121838">如要掃描 QR 圖碼,請在設定中啟用相機</translation>
 <translation id="4281844954008187215">服務條款</translation>
 <translation id="430793432425771671">同步處理所有資料</translation>
diff --git a/ios/chrome/browser/net/ios_chrome_network_delegate.cc b/ios/chrome/browser/net/ios_chrome_network_delegate.cc
index c8de74bd..377eb83fa 100644
--- a/ios/chrome/browser/net/ios_chrome_network_delegate.cc
+++ b/ios/chrome/browser/net/ios_chrome_network_delegate.cc
@@ -12,7 +12,6 @@
 #include "base/debug/stack_trace.h"
 #include "base/logging.h"
 #include "base/metrics/histogram.h"
-#include "base/metrics/histogram_functions.h"
 #include "base/path_service.h"
 #include "base/task/post_task.h"
 #include "components/prefs/pref_member.h"
@@ -41,21 +40,6 @@
   NOTREACHED();
 }
 
-// Record network errors that HTTP requests complete with, including OK and
-// ABORTED.
-void RecordNetworkErrorHistograms(const net::URLRequest* request,
-                                  int net_error) {
-  if (request->url().SchemeIs("http")) {
-    base::UmaHistogramSparse("Net.HttpRequestCompletionErrorCodes",
-                             std::abs(net_error));
-
-    if (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) {
-      base::UmaHistogramSparse("Net.HttpRequestCompletionErrorCodes.MainFrame",
-                               std::abs(net_error));
-    }
-  }
-}
-
 }  // namespace
 
 IOSChromeNetworkDelegate::IOSChromeNetworkDelegate()
@@ -84,12 +68,6 @@
   return net::OK;
 }
 
-void IOSChromeNetworkDelegate::OnCompleted(net::URLRequest* request,
-                                           bool started,
-                                           int net_error) {
-  RecordNetworkErrorHistograms(request, net_error);
-}
-
 bool IOSChromeNetworkDelegate::OnCanGetCookies(
     const net::URLRequest& request,
     const net::CookieList& cookie_list,
diff --git a/ios/chrome/browser/net/ios_chrome_network_delegate.h b/ios/chrome/browser/net/ios_chrome_network_delegate.h
index 6f19043..8145686 100644
--- a/ios/chrome/browser/net/ios_chrome_network_delegate.h
+++ b/ios/chrome/browser/net/ios_chrome_network_delegate.h
@@ -50,9 +50,6 @@
   int OnBeforeURLRequest(net::URLRequest* request,
                          net::CompletionOnceCallback callback,
                          GURL* new_url) override;
-  void OnCompleted(net::URLRequest* request,
-                   bool started,
-                   int net_error) override;
   bool OnCanGetCookies(const net::URLRequest& request,
                        const net::CookieList& cookie_list,
                        bool allowed_from_caller) override;
diff --git a/media/cdm/cdm_paths.cc b/media/cdm/cdm_paths.cc
index 7414d71f..211169c7 100644
--- a/media/cdm/cdm_paths.cc
+++ b/media/cdm/cdm_paths.cc
@@ -24,16 +24,19 @@
 // this ID is based on the pepper plugin MIME type.
 const char kClearKeyCdmFileSystemId[] = "application_x-ppapi-clearkey-cdm";
 
-base::FilePath GetPlatformSpecificDirectory(const std::string& cdm_base_path) {
+base::FilePath GetPlatformSpecificDirectory(
+    const base::FilePath& cdm_base_path) {
   // CDM_PLATFORM_SPECIFIC_PATH is specified in cdm_paths.gni.
   const std::string kPlatformSpecific = BUILDFLAG(CDM_PLATFORM_SPECIFIC_PATH);
   if (kPlatformSpecific.empty())
     return base::FilePath();
 
-  return base::FilePath()
-      .AppendASCII(cdm_base_path)
-      .AppendASCII(kPlatformSpecific)
-      .NormalizePathSeparators();
+  return cdm_base_path.AppendASCII(kPlatformSpecific).NormalizePathSeparators();
+}
+
+base::FilePath GetPlatformSpecificDirectory(const std::string& cdm_base_path) {
+  return GetPlatformSpecificDirectory(
+      base::FilePath::FromUTF8Unsafe(cdm_base_path));
 }
 
 }  // namespace media
diff --git a/media/cdm/cdm_paths.h b/media/cdm/cdm_paths.h
index 93dc025..7c67d1f 100644
--- a/media/cdm/cdm_paths.h
+++ b/media/cdm/cdm_paths.h
@@ -37,6 +37,8 @@
 //   e.g. WidevineCdm/_platform_specific/win_x64
 // Otherwise, returns an empty path.
 // TODO(xhwang): Use this function in Widevine CDM component installer.
+base::FilePath GetPlatformSpecificDirectory(
+    const base::FilePath& cdm_base_path);
 base::FilePath GetPlatformSpecificDirectory(const std::string& cdm_base_path);
 
 }  // namespace media
diff --git a/media/gpu/android/media_codec_video_decoder.cc b/media/gpu/android/media_codec_video_decoder.cc
index 8f44b19..6408aa5 100644
--- a/media/gpu/android/media_codec_video_decoder.cc
+++ b/media/gpu/android/media_codec_video_decoder.cc
@@ -22,6 +22,7 @@
 #include "media/base/bind_to_current_loop.h"
 #include "media/base/cdm_context.h"
 #include "media/base/decoder_buffer.h"
+#include "media/base/media_log.h"
 #include "media/base/media_switches.h"
 #include "media/base/scoped_async_trace.h"
 #include "media/base/video_codecs.h"
@@ -204,13 +205,15 @@
 MediaCodecVideoDecoder::MediaCodecVideoDecoder(
     const gpu::GpuPreferences& gpu_preferences,
     const gpu::GpuFeatureInfo& gpu_feature_info,
+    std::unique_ptr<MediaLog> media_log,
     DeviceInfo* device_info,
     CodecAllocator* codec_allocator,
     std::unique_ptr<AndroidVideoSurfaceChooser> surface_chooser,
     AndroidOverlayMojoFactoryCB overlay_factory_cb,
     RequestOverlayInfoCB request_overlay_info_cb,
     std::unique_ptr<VideoFrameFactory> video_frame_factory)
-    : codec_allocator_(codec_allocator),
+    : media_log_(std::move(media_log)),
+      codec_allocator_(codec_allocator),
       request_overlay_info_cb_(std::move(request_overlay_info_cb)),
       is_surface_control_enabled_(IsSurfaceControlEnabled(gpu_feature_info)),
       surface_chooser_helper_(
@@ -279,6 +282,12 @@
            << ", cdm_context = " << cdm_context;
 
   if (!config.IsValidConfig()) {
+    media_log_->AddEvent(media_log_->CreateStringEvent(
+        MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info",
+        "Video configuration is not valid"));
+    media_log_->AddEvent(
+        media_log_->CreateStringEvent(MediaLogEvent::MEDIA_INFO_LOG_ENTRY,
+                                      "info", config.AsHumanReadableString()));
     DVLOG(1) << "Invalid configuration.";
     BindToCurrentLoop(std::move(init_cb)).Run(false);
     return;
@@ -292,6 +301,12 @@
                            : GetSupportedConfigsInternal(device_info_);
   if (!IsVideoDecoderConfigSupported(configs, config)) {
     DVLOG(1) << "Unsupported configuration.";
+    media_log_->AddEvent(media_log_->CreateStringEvent(
+        MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info",
+        "Video configuration is not supported"));
+    media_log_->AddEvent(
+        media_log_->CreateStringEvent(MediaLogEvent::MEDIA_INFO_LOG_ENTRY,
+                                      "info", config.AsHumanReadableString()));
     BindToCurrentLoop(std::move(init_cb)).Run(false);
     return;
   }
@@ -299,6 +314,15 @@
   // Disallow codec changes when reinitializing.
   if (!first_init && decoder_config_.codec() != config.codec()) {
     DVLOG(1) << "Codec changed: cannot reinitialize";
+    media_log_->AddEvent(media_log_->CreateStringEvent(
+        MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info",
+        "Cannot change codec during re-init"));
+    media_log_->AddEvent(
+        media_log_->CreateStringEvent(MediaLogEvent::MEDIA_INFO_LOG_ENTRY,
+                                      "info", config.AsHumanReadableString()));
+    media_log_->AddEvent(media_log_->CreateStringEvent(
+        MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info",
+        decoder_config_.AsHumanReadableString()));
     BindToCurrentLoop(std::move(init_cb)).Run(false);
     return;
   }
@@ -326,6 +350,9 @@
 
   if (config.is_encrypted() && media_crypto_.is_null()) {
     DVLOG(1) << "No MediaCrypto to handle encrypted config";
+    media_log_->AddEvent(media_log_->CreateStringEvent(
+        MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info",
+        "No MediaCrypto to handle encrypted config"));
     BindToCurrentLoop(std::move(init_cb)).Run(false);
     return;
   }
@@ -383,7 +410,7 @@
 
     if (decoder_config_.is_encrypted()) {
       LOG(ERROR) << "MediaCrypto is not available";
-      EnterTerminalState(State::kError);
+      EnterTerminalState(State::kError, "MediaCrypto is not available");
       std::move(init_cb).Run(false);
       return;
     }
@@ -460,7 +487,7 @@
   TRACE_EVENT0("media",
                "MediaCodecVideoDecoder::OnVideoFrameFactoryInitialized");
   if (!texture_owner) {
-    EnterTerminalState(State::kError);
+    EnterTerminalState(State::kError, "Could not allocated TextureOwner");
     return;
   }
   texture_owner_bundle_ = new CodecSurfaceBundle(std::move(texture_owner));
@@ -536,7 +563,7 @@
   // no idea that this has happened.  We should unback the frames here.  This
   // might work now that we have CodecImageGroup -- verify this.
   if (!device_info_->IsSetOutputSurfaceSupported()) {
-    EnterTerminalState(State::kSurfaceDestroyed);
+    EnterTerminalState(State::kSurfaceDestroyed, "Surface destroyed");
     return;
   }
 
@@ -560,7 +587,7 @@
 
   if (!codec_->SetSurface(target_surface_bundle_)) {
     video_frame_factory_->SetSurfaceBundle(nullptr);
-    EnterTerminalState(State::kError);
+    EnterTerminalState(State::kError, "Could not switch codec output surface");
     return;
   }
 
@@ -630,7 +657,7 @@
   DCHECK_EQ(state_, State::kRunning);
 
   if (!codec) {
-    EnterTerminalState(State::kError);
+    EnterTerminalState(State::kError, "Unable to allocate codec");
     return;
   }
 
@@ -707,7 +734,7 @@
   if (codec_->SupportsFlush(device_info_)) {
     DVLOG(2) << "Flushing codec";
     if (!codec_->Flush())
-      EnterTerminalState(State::kError);
+      EnterTerminalState(State::kError, "Codec flush failed");
   } else {
     DVLOG(2) << "flush() workaround: creating a new codec";
     // Release the codec and create a new one.
@@ -824,7 +851,7 @@
       waiting_cb_.Run(WaitingReason::kNoDecryptionKey);
       return false;
     case CodecWrapper::QueueStatus::kError:
-      EnterTerminalState(State::kError);
+      EnterTerminalState(State::kError, "QueueInputBuffer failed");
       return false;
   }
 
@@ -871,7 +898,7 @@
       return false;
     case CodecWrapper::DequeueStatus::kError:
       DVLOG(1) << "DequeueOutputBuffer() error";
-      EnterTerminalState(State::kError);
+      EnterTerminalState(State::kError, "DequeueOutputBuffer failed");
       return false;
   }
   DVLOG(3) << "DequeueOutputBuffer(): pts="
@@ -946,7 +973,7 @@
   // No |frame| indicates an error creating it.
   if (!frame) {
     DLOG(ERROR) << __func__ << " |frame| is null";
-    EnterTerminalState(State::kError);
+    EnterTerminalState(State::kError, "Could not create VideoFrame");
     return;
   }
 
@@ -1035,8 +1062,12 @@
   }
 }
 
-void MediaCodecVideoDecoder::EnterTerminalState(State state) {
-  DVLOG(2) << __func__ << " " << static_cast<int>(state);
+void MediaCodecVideoDecoder::EnterTerminalState(State state,
+                                                const char* reason) {
+  DVLOG(2) << __func__ << " " << static_cast<int>(state) << " " << reason;
+
+  media_log_->AddEvent(media_log_->CreateStringEvent(
+      MediaLogEvent::MEDIA_INFO_LOG_ENTRY, "info", reason));
 
   state_ = state;
   DCHECK(InTerminalState());
diff --git a/media/gpu/android/media_codec_video_decoder.h b/media/gpu/android/media_codec_video_decoder.h
index 721bee5..59055e4 100644
--- a/media/gpu/android/media_codec_video_decoder.h
+++ b/media/gpu/android/media_codec_video_decoder.h
@@ -29,6 +29,7 @@
 
 namespace media {
 
+class MediaLog;
 class ScopedAsyncTrace;
 struct SupportedVideoDecoderConfig;
 
@@ -64,6 +65,7 @@
   MediaCodecVideoDecoder(
       const gpu::GpuPreferences& gpu_preferences,
       const gpu::GpuFeatureInfo& gpu_feature_info,
+      std::unique_ptr<MediaLog> media_log,
       DeviceInfo* device_info,
       CodecAllocator* codec_allocator,
       std::unique_ptr<AndroidVideoSurfaceChooser> surface_chooser,
@@ -193,8 +195,10 @@
   void CancelPendingDecodes(DecodeStatus status);
 
   // Sets |state_| and does common teardown for the terminal states. |state_|
-  // must be either kSurfaceDestroyed or kError.
-  void EnterTerminalState(State state);
+  // must be either kSurfaceDestroyed or kError.  |reason| will be logged to
+  // |media_log_| as an info event ("error" indicates that playback will stop,
+  // but we don't know that the renderer will do that).
+  void EnterTerminalState(State state, const char* reason);
   bool InTerminalState();
 
   // Releases |codec_| if it's not null.
@@ -216,6 +220,8 @@
   // position if required.
   PromotionHintAggregator::NotifyPromotionHintCB CreatePromotionHintCB();
 
+  std::unique_ptr<MediaLog> media_log_;
+
   State state_ = State::kInitializing;
 
   // Whether initialization still needs to be done on the first decode call.
diff --git a/media/gpu/android/media_codec_video_decoder_unittest.cc b/media/gpu/android/media_codec_video_decoder_unittest.cc
index 1161ab9..c6ef389c 100644
--- a/media/gpu/android/media_codec_video_decoder_unittest.cc
+++ b/media/gpu/android/media_codec_video_decoder_unittest.cc
@@ -18,6 +18,7 @@
 #include "media/base/android/mock_android_overlay.h"
 #include "media/base/android/mock_media_crypto_context.h"
 #include "media/base/decoder_buffer.h"
+#include "media/base/media_util.h"
 #include "media/base/test_helpers.h"
 #include "media/base/video_frame.h"
 #include "media/gpu/android/android_video_surface_chooser_impl.h"
@@ -149,8 +150,8 @@
         .WillByDefault(RunCallback<1>(texture_owner));
 
     auto* observable_mcvd = new DestructionObservableMCVD(
-        gpu_preferences_, gpu_feature_info_, device_info_.get(),
-        codec_allocator_.get(), std::move(surface_chooser),
+        gpu_preferences_, gpu_feature_info_, std::make_unique<NullMediaLog>(),
+        device_info_.get(), codec_allocator_.get(), std::move(surface_chooser),
         base::BindRepeating(&CreateAndroidOverlayCb),
         base::Bind(&MediaCodecVideoDecoderTest::RequestOverlayInfoCb,
                    base::Unretained(this)),
diff --git a/media/gpu/linux/video_decoder_pipeline.cc b/media/gpu/linux/video_decoder_pipeline.cc
index d1acc03..58d0a3c 100644
--- a/media/gpu/linux/video_decoder_pipeline.cc
+++ b/media/gpu/linux/video_decoder_pipeline.cc
@@ -325,6 +325,9 @@
   DCHECK(frame_converter_);
   DVLOGF(4);
 
+  // Flag that the video frame was decoded in a power efficient way.
+  frame->metadata()->SetBoolean(VideoFrameMetadata::POWER_EFFICIENT, true);
+
   frame_converter_->ConvertFrame(std::move(frame));
 }
 
diff --git a/media/gpu/test/video_player/test_vda_video_decoder.cc b/media/gpu/test/video_player/test_vda_video_decoder.cc
index 7ce174e..5343d5a 100644
--- a/media/gpu/test/video_player/test_vda_video_decoder.cc
+++ b/media/gpu/test/video_player/test_vda_video_decoder.cc
@@ -307,6 +307,10 @@
 
   DCHECK(wrapped_video_frame);
 
+  // Flag that the video frame was decoded in a power efficient way.
+  wrapped_video_frame->metadata()->SetBoolean(
+      VideoFrameMetadata::POWER_EFFICIENT, true);
+
   // It's important to bind the original video frame to the destruction callback
   // of the wrapped frame, to avoid deleting it before rendering of the wrapped
   // frame is done. A reference to the video frame is already stored in
diff --git a/media/gpu/test/video_player/video_decoder_client.cc b/media/gpu/test/video_player/video_decoder_client.cc
index 1aa9b4e..65f38cbf 100644
--- a/media/gpu/test/video_player/video_decoder_client.cc
+++ b/media/gpu/test/video_player/video_decoder_client.cc
@@ -349,6 +349,7 @@
 
 void VideoDecoderClient::FrameReadyTask(scoped_refptr<VideoFrame> video_frame) {
   DCHECK_CALLED_ON_VALID_SEQUENCE(decoder_client_sequence_checker_);
+  DCHECK(video_frame->metadata()->IsTrue(VideoFrameMetadata::POWER_EFFICIENT));
 
   frame_renderer_->RenderFrame(video_frame);
 
diff --git a/media/gpu/test/video_test_environment.cc b/media/gpu/test/video_test_environment.cc
index 92591239..4179810 100644
--- a/media/gpu/test/video_test_environment.cc
+++ b/media/gpu/test/video_test_environment.cc
@@ -53,7 +53,7 @@
   LOG(WARNING) << "Initializing Ozone Platform...\n"
                   "If this hangs indefinitely please call 'stop ui' first!";
   ui::OzonePlatform::InitParams params;
-  params.single_process = false;
+  params.single_process = true;
   ui::OzonePlatform::InitializeForUI(params);
   ui::OzonePlatform::InitializeForGPU(params);
   ui::OzonePlatform::GetInstance()->AfterSandboxEntry();
diff --git a/media/gpu/v4l2/v4l2_slice_video_decoder.cc b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
index 66e6595c..4b189f8c 100644
--- a/media/gpu/v4l2/v4l2_slice_video_decoder.cc
+++ b/media/gpu/v4l2/v4l2_slice_video_decoder.cc
@@ -909,9 +909,13 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(decoder_sequence_checker_);
   DVLOGF(3);
 
-  // Find the timestamp associated with |bitstream_id|. On some rare occasions
-  // it's possible that a single DecoderBuffer produces multiple surfaces with
-  // the same |bitstream_id|, so we can't remove the timestamp from the cache.
+  // Find the timestamp associated with |bitstream_id|. It's possible that a
+  // surface is output multiple times for different |bitstream_id|s (e.g. VP9
+  // show_existing_frame feature). This means we need to output the same frame
+  // again with a different timestamp.
+  // On some rare occasions it's also possible that a single DecoderBuffer
+  // produces multiple surfaces with the same |bitstream_id|, so we shouldn't
+  // remove the timestamp from the cache.
   const auto it = bitstream_id_to_timestamp_.Peek(bitstream_id);
   DCHECK(it != bitstream_id_to_timestamp_.end());
   base::TimeDelta timestamp = it->second;
@@ -1101,15 +1105,14 @@
   DCHECK_CALLED_ON_VALID_SEQUENCE(decoder_sequence_checker_);
   DVLOGF(4) << "timestamp: " << timestamp;
 
-  // |frame| haven't been set timestamp before, we could set the timestamp
-  // directly without wrapping.
+  // Set the timestamp at which the decode operation started on the
+  // |frame|. If the frame has been outputted before (e.g. because of VP9
+  // show-existing-frame feature) we can't overwrite the timestamp directly, as
+  // the original frame might still be in use. Instead we wrap the frame in
+  // another frame with a different timestamp.
   if (frame->timestamp().is_zero())
     frame->set_timestamp(timestamp);
 
-  // We need to update one or more attributes of the frame. Since we can't
-  // modify the attributes of the frame directly, we wrap the frame into a new
-  // frame with updated attributes. The old frame is bound to a destruction
-  // observer so it's not destroyed before the wrapped frame.
   if (frame->visible_rect() != visible_rect ||
       frame->timestamp() != timestamp) {
     gfx::Size natural_size = GetNaturalSize(visible_rect, pixel_aspect_ratio_);
@@ -1121,7 +1124,6 @@
 
     frame = std::move(wrapped_frame);
   }
-  frame->metadata()->SetBoolean(VideoFrameMetadata::POWER_EFFICIENT, true);
 
   // Although the document of VideoDecoder says "should run |output_cb| as soon
   // as possible (without thread trampolining)", MojoVideoDecoderService still
diff --git a/media/gpu/vaapi/vaapi_video_decoder.cc b/media/gpu/vaapi/vaapi_video_decoder.cc
index 1a94f146..cf4f0ac 100644
--- a/media/gpu/vaapi/vaapi_video_decoder.cc
+++ b/media/gpu/vaapi/vaapi_video_decoder.cc
@@ -445,14 +445,12 @@
   DVLOGF(3);
 
   // Find the timestamp associated with |buffer_id|. It's possible that a
-  // surface is output multiple times for different |buffer_id|s (e.g. VP9 use
-  // existing frame feature). This means we need to output the same frame again
-  // with a different timestamp than the one recorded in CreateSurface(). We
-  // can't overwrite the timestamp directly as the original frame might still be
-  // in use. Instead we wrap the frame in another frame with a different
-  // timestamp in OutputFrameTask(). On some rare occasions it's also possible
-  // that a single DecoderBuffer produces multiple surfaces with the same
-  // |bitstream_id|, so we shouldn't remove the timestamp from the cache.
+  // surface is output multiple times for different |buffer_id|s (e.g. VP9
+  // show_existing_frame feature). This means we need to output the same frame
+  // again with a different timestamp.
+  // On some rare occasions it's also possible that a single DecoderBuffer
+  // produces multiple surfaces with the same |buffer_id|, so we shouldn't
+  // remove the timestamp from the cache.
   const auto it = buffer_id_to_timestamp_.Peek(buffer_id);
   DCHECK(it != buffer_id_to_timestamp_.end());
   base::TimeDelta timestamp = it->second;
@@ -471,15 +469,14 @@
   DCHECK(video_frame);
   DVLOGF(4);
 
-  // |video_frame| haven't been set timestamp before, we could set the timestamp
-  // directly without wrapping.
+  // Set the timestamp at which the decode operation started on the
+  // |video_frame|. If the frame has been outputted before (e.g. because of VP9
+  // show-existing-frame feature) we can't overwrite the timestamp directly, as
+  // the original frame might still be in use. Instead we wrap the frame in
+  // another frame with a different timestamp.
   if (video_frame->timestamp().is_zero())
     video_frame->set_timestamp(timestamp);
 
-  // We need to update one or more attributes of the frame. Since we can't
-  // modify the attributes of the frame directly, we wrap the frame into a new
-  // frame with updated attributes. The old frame is bound to a destruction
-  // observer so it's not destroyed before the wrapped frame.
   if (video_frame->visible_rect() != visible_rect ||
       video_frame->timestamp() != timestamp) {
     gfx::Size natural_size = GetNaturalSize(visible_rect, pixel_aspect_ratio_);
diff --git a/media/mojo/services/gpu_mojo_media_client.cc b/media/mojo/services/gpu_mojo_media_client.cc
index 47e48bb..428b30184 100644
--- a/media/mojo/services/gpu_mojo_media_client.cc
+++ b/media/mojo/services/gpu_mojo_media_client.cc
@@ -224,7 +224,8 @@
       auto ycbcr_helper =
           YCbCrHelper::Create(gpu_task_runner_, std::move(get_stub_cb));
       video_decoder = std::make_unique<MediaCodecVideoDecoder>(
-          gpu_preferences_, gpu_feature_info_, DeviceInfo::GetInstance(),
+          gpu_preferences_, gpu_feature_info_, media_log->Clone(),
+          DeviceInfo::GetInstance(),
           CodecAllocator::GetInstance(gpu_task_runner_),
           std::make_unique<AndroidVideoSurfaceChooserImpl>(
               DeviceInfo::GetInstance()->IsSetOutputSurfaceSupported()),
diff --git a/remoting/BUILD.gn b/remoting/BUILD.gn
index 0aa3140..a00b645 100644
--- a/remoting/BUILD.gn
+++ b/remoting/BUILD.gn
@@ -158,6 +158,7 @@
     "//remoting/client:unit_tests",
     "//remoting/client/audio:unit_tests",
     "//remoting/client/input:unit_tests",
+    "//remoting/client/notification:unit_tests",
     "//remoting/client/ui:unit_tests",
     "//remoting/protocol:unit_tests",
     "//remoting/signaling:unit_tests",
diff --git a/remoting/client/BUILD.gn b/remoting/client/BUILD.gn
index 127220e6..2026b2da 100644
--- a/remoting/client/BUILD.gn
+++ b/remoting/client/BUILD.gn
@@ -41,6 +41,7 @@
 
   deps = [
     "//remoting/client/audio",
+    "//remoting/client/notification",
     "//remoting/codec:decoder",
     "//remoting/protocol",
     "//third_party/libyuv",
diff --git a/remoting/client/notification/BUILD.gn b/remoting/client/notification/BUILD.gn
new file mode 100644
index 0000000..86047aff
--- /dev/null
+++ b/remoting/client/notification/BUILD.gn
@@ -0,0 +1,34 @@
+# Copyright 2019 The Chromium Authors. All rights reserved.
+# Use of this source code is governed by a BSD-style license that can be
+# found in the LICENSE file.
+
+source_set("notification") {
+  sources = [
+    "json_fetcher.h",
+    "notification_client.cc",
+    "notification_client.h",
+    "notification_message.cc",
+    "notification_message.h",
+    "version_range.cc",
+    "version_range.h",
+  ]
+
+  deps = [
+    "//base",
+  ]
+}
+
+source_set("unit_tests") {
+  testonly = true
+
+  sources = [
+    "notification_client_unittest.cc",
+    "version_range_unittest.cc",
+  ]
+
+  deps = [
+    ":notification",
+    "//testing/gmock",
+    "//testing/gtest",
+  ]
+}
diff --git a/remoting/client/notification/json_fetcher.h b/remoting/client/notification/json_fetcher.h
new file mode 100644
index 0000000..7a10b42b
--- /dev/null
+++ b/remoting/client/notification/json_fetcher.h
@@ -0,0 +1,37 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_NOTIFICATION_JSON_FETCHER_H_
+#define REMOTING_CLIENT_NOTIFICATION_JSON_FETCHER_H_
+
+#include <string>
+
+#include "base/callback_forward.h"
+
+namespace base {
+class Value;
+}  // namespace base
+
+namespace remoting {
+
+// Interface for fetching a JSON file under https://www.gstatic.com/chromoting.
+class JsonFetcher {
+ public:
+  JsonFetcher() = default;
+  virtual ~JsonFetcher() = default;
+
+  // |relative_path| is relative to https://www.gstatic.com/chromoting/.
+  // Runs |done| with the decoded value if the file is successfully fetched,
+  // otherwise runs |done| with base::nullopt.
+  //
+  // Note that the implementation MUST be able to handle concurrent requests and
+  // MUST NOT keep |done| after its destructor is called.
+  virtual void FetchJsonFile(
+      const std::string& relative_path,
+      base::OnceCallback<void(base::Optional<base::Value>)> done) const = 0;
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_CLIENT_NOTIFICATION_JSON_FETCHER_H_
\ No newline at end of file
diff --git a/remoting/client/notification/notification_client.cc b/remoting/client/notification/notification_client.cc
new file mode 100644
index 0000000..8ae8357
--- /dev/null
+++ b/remoting/client/notification/notification_client.cc
@@ -0,0 +1,279 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/notification/notification_client.h"
+
+#include "base/bind.h"
+#include "base/callback.h"
+#include "base/hash/hash.h"
+#include "base/logging.h"
+#include "base/memory/ref_counted.h"
+#include "base/memory/scoped_refptr.h"
+#include "base/values.h"
+#include "remoting/client/notification/json_fetcher.h"
+#include "remoting/client/notification/notification_message.h"
+#include "remoting/client/notification/version_range.h"
+
+namespace remoting {
+
+namespace {
+
+constexpr char kDefaultLocale[] = "en-US";
+constexpr char kNotificationRootPath[] = "notification/";
+constexpr char kNotificationRulesPath[] = "notification/rules.json";
+
+template <typename T, typename IsTChecker, typename TGetter>
+bool FindKeyAndGet(const base::Value& dict,
+                   const std::string& key,
+                   T* out,
+                   IsTChecker is_t_checker,
+                   TGetter t_getter,
+                   const std::string& type_name) {
+  const base::Value* value = dict.FindKey(key);
+  if (!value) {
+    LOG(ERROR) << "|" << key << "| not found in dictionary.";
+    return false;
+  }
+  if (!(value->*is_t_checker)()) {
+    LOG(ERROR) << "Value is not " << type_name;
+    return false;
+  }
+  *out = (value->*t_getter)();
+  return true;
+}
+
+bool FindKeyAndGet(const base::Value& dict,
+                   const std::string& key,
+                   std::string* out) {
+  const std::string& (base::Value::*get_string_fp)() const =
+      &base::Value::GetString;
+  return FindKeyAndGet(dict, key, out, &base::Value::is_string, get_string_fp,
+                       "string");
+}
+
+bool FindKeyAndGet(const base::Value& dict, const std::string& key, int* out) {
+  return FindKeyAndGet(dict, key, out, &base::Value::is_int,
+                       &base::Value::GetInt, "int");
+}
+
+bool ShouldShowNotificationForUser(const std::string& user_email,
+                                   int percent_int) {
+  DCHECK_GE(percent_int, 0);
+  DCHECK_LE(percent_int, 100);
+  return (base::FastHash(user_email) % 100) <
+         static_cast<unsigned int>(percent_int);
+}
+
+class MessageAndLinkTextResults
+    : public base::RefCounted<MessageAndLinkTextResults> {
+ public:
+  using Callback = base::OnceCallback<void(bool is_successful)>;
+  MessageAndLinkTextResults(const std::string& locale,
+                            Callback done,
+                            std::string* out_message_translation,
+                            std::string* out_link_translation)
+      : locale_(locale),
+        done_(std::move(done)),
+        out_message_translation_(out_message_translation),
+        out_link_translation_(out_link_translation) {}
+
+  void OnMessageTranslationsFetched(base::Optional<base::Value> translations) {
+    is_message_translation_fetched_ = true;
+    OnTranslationsFetched(std::move(translations), out_message_translation_);
+  }
+
+  void OnLinkTranslationsFetched(base::Optional<base::Value> translations) {
+    is_link_translation_fetched_ = true;
+    OnTranslationsFetched(std::move(translations), out_link_translation_);
+  }
+
+ private:
+  friend class base::RefCounted<MessageAndLinkTextResults>;
+
+  ~MessageAndLinkTextResults() = default;
+
+  void OnTranslationsFetched(base::Optional<base::Value> translations,
+                             std::string* string_to_update) {
+    if (!done_) {
+      LOG(WARNING) << "Received new translations after some translations have "
+                   << "failed to fetch";
+      return;
+    }
+    if (!translations) {
+      LOG(ERROR) << "Failed to fetch translation file";
+      NotifyFetchFailed();
+      return;
+    }
+    if (!FindKeyAndGet(*translations, locale_, string_to_update)) {
+      LOG(WARNING) << "Failed to find translation for locale " << locale_
+                   << ". Falling back to default locale: " << kDefaultLocale;
+      if (!FindKeyAndGet(*translations, kDefaultLocale, string_to_update)) {
+        LOG(ERROR) << "Failed to find translation for default locale";
+        NotifyFetchFailed();
+        return;
+      }
+    }
+    if (done_ && is_message_translation_fetched_ &&
+        is_link_translation_fetched_) {
+      std::move(done_).Run(true);
+    }
+  }
+
+  void NotifyFetchFailed() {
+    DCHECK(done_);
+    std::move(done_).Run(false);
+  }
+
+  std::string locale_;
+  Callback done_;
+  std::string* out_message_translation_;
+  std::string* out_link_translation_;
+  bool is_message_translation_fetched_ = false;
+  bool is_link_translation_fetched_ = false;
+};
+
+}  // namespace
+
+NotificationClient::~NotificationClient() = default;
+
+NotificationClient::NotificationClient(std::unique_ptr<JsonFetcher> fetcher,
+                                       const std::string& current_platform,
+                                       const std::string& current_version,
+                                       const std::string& locale)
+    : fetcher_(std::move(fetcher)),
+      current_platform_(current_platform),
+      current_version_(current_version),
+      locale_(locale) {}
+
+void NotificationClient::GetNotification(const std::string& user_email,
+                                         NotificationCallback callback) {
+  fetcher_->FetchJsonFile(
+      kNotificationRulesPath,
+      base::BindOnce(&NotificationClient::OnRulesFetched,
+                     base::Unretained(this), user_email, std::move(callback)));
+}
+
+void NotificationClient::OnRulesFetched(const std::string& user_email,
+                                        NotificationCallback callback,
+                                        base::Optional<base::Value> rules) {
+  if (!rules) {
+    LOG(ERROR) << "Rules not found";
+    std::move(callback).Run(base::nullopt);
+    return;
+  }
+
+  if (!rules->is_list()) {
+    LOG(ERROR) << "Rules should be list";
+    std::move(callback).Run(base::nullopt);
+    return;
+  }
+
+  for (const auto& rule : rules->GetList()) {
+    std::string message_text_filename;
+    std::string link_text_filename;
+    auto message = ParseAndMatchRule(rule, user_email, &message_text_filename,
+                                     &link_text_filename);
+
+    if (message) {
+      FetchTranslatedTexts(message_text_filename, link_text_filename,
+                           std::move(message), std::move(callback));
+      return;
+    }
+  }
+  // No matching rule is found.
+  std::move(callback).Run(base::nullopt);
+}
+
+base::Optional<NotificationMessage> NotificationClient::ParseAndMatchRule(
+    const base::Value& rule,
+    const std::string& user_email,
+    std::string* out_message_text_filename,
+    std::string* out_link_text_filename) {
+  std::string appearance_string;
+  std::string target_platform;
+  std::string version_spec_string;
+  std::string message_text_filename;
+  std::string link_text_filename;
+  std::string link_url;
+  int percent;
+  if (!FindKeyAndGet(rule, "appearance", &appearance_string) ||
+      !FindKeyAndGet(rule, "target_platform", &target_platform) ||
+      !FindKeyAndGet(rule, "version", &version_spec_string) ||
+      !FindKeyAndGet(rule, "message_text", &message_text_filename) ||
+      !FindKeyAndGet(rule, "link_text", &link_text_filename) ||
+      !FindKeyAndGet(rule, "link_url", &link_url) ||
+      !FindKeyAndGet(rule, "percent", &percent)) {
+    return base::nullopt;
+  }
+
+  if (target_platform != current_platform_) {
+    VLOG(1) << "Notification ignored. Target platform: " << target_platform
+            << "; current platform: " << current_platform_;
+    return base::nullopt;
+  }
+
+  VersionRange version_range(version_spec_string);
+  if (!version_range.IsValid()) {
+    LOG(ERROR) << "Invalid version range: " << version_spec_string;
+    return base::nullopt;
+  }
+
+  if (!version_range.ContainsVersion(current_version_)) {
+    VLOG(1) << "Current version " << current_version_ << " not in range "
+            << version_spec_string;
+    return base::nullopt;
+  }
+
+  if (!ShouldShowNotificationForUser(user_email, percent)) {
+    VLOG(1) << "User is not selected for notification";
+    return base::nullopt;
+  }
+
+  auto message = base::make_optional<NotificationMessage>();
+  if (appearance_string == "TOAST") {
+    message->appearance = NotificationMessage::Appearance::TOAST;
+  } else if (appearance_string == "DIALOG") {
+    message->appearance = NotificationMessage::Appearance::DIALOG;
+  } else {
+    LOG(ERROR) << "Unknown appearance: " << appearance_string;
+    return base::nullopt;
+  }
+  message->link_url = link_url;
+  *out_message_text_filename = message_text_filename;
+  *out_link_text_filename = link_text_filename;
+  return message;
+}
+
+void NotificationClient::FetchTranslatedTexts(
+    const std::string& message_text_filename,
+    const std::string& link_text_filename,
+    base::Optional<NotificationMessage> partial_message,
+    NotificationCallback done) {
+  // Copy the message into a unique_ptr since moving base::Optional does not
+  // move the internal storage.
+  auto message_copy = std::make_unique<NotificationMessage>(*partial_message);
+  std::string* message_text_ptr = &message_copy->message_text;
+  std::string* link_text_ptr = &message_copy->link_text;
+  auto on_translated_texts_fetched = base::BindOnce(
+      [](std::unique_ptr<NotificationMessage> message,
+         NotificationCallback done, bool is_successful) {
+        std::move(done).Run(
+            is_successful ? base::make_optional<NotificationMessage>(*message)
+                          : base::nullopt);
+      },
+      std::move(message_copy), std::move(done));
+  auto results = base::MakeRefCounted<MessageAndLinkTextResults>(
+      locale_, std::move(on_translated_texts_fetched), message_text_ptr,
+      link_text_ptr);
+  fetcher_->FetchJsonFile(
+      kNotificationRootPath + message_text_filename,
+      base::BindOnce(&MessageAndLinkTextResults::OnMessageTranslationsFetched,
+                     results));
+  fetcher_->FetchJsonFile(
+      kNotificationRootPath + link_text_filename,
+      base::BindOnce(&MessageAndLinkTextResults::OnLinkTranslationsFetched,
+                     results));
+}
+
+}  // namespace remoting
diff --git a/remoting/client/notification/notification_client.h b/remoting/client/notification/notification_client.h
new file mode 100644
index 0000000..36f7231
--- /dev/null
+++ b/remoting/client/notification/notification_client.h
@@ -0,0 +1,78 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_CLIENT_H_
+#define REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_CLIENT_H_
+
+#include <memory>
+#include <string>
+
+#include "base/callback_forward.h"
+#include "base/macros.h"
+#include "base/optional.h"
+
+namespace base {
+class Value;
+}  // namespace base
+
+namespace remoting {
+
+class JsonFetcher;
+struct NotificationMessage;
+
+// Class for fetching a notification from the server so that the caller can
+// show that on some UI component when the app is launched.
+class NotificationClient final {
+ public:
+  using NotificationCallback =
+      base::OnceCallback<void(base::Optional<NotificationMessage>)>;
+
+  ~NotificationClient();
+
+  // Fetches notifications from the server and calls |callback| with the
+  // best matched notification. If notifications failed to fetch or no matching
+  // notification is found then base::nullopt will be returned. |callback| will
+  // be silently dropped if |this| is deleted before the notification is
+  // fetched.
+  void GetNotification(const std::string& user_email,
+                       NotificationCallback callback);
+
+ private:
+  friend class NotificationClientTest;
+
+  // Constructor for unittest.
+  NotificationClient(std::unique_ptr<JsonFetcher> fetcher,
+                     const std::string& current_platform,
+                     const std::string& current_version,
+                     const std::string& locale);
+
+  void OnRulesFetched(const std::string& user_email,
+                      NotificationCallback callback,
+                      base::Optional<base::Value> rules);
+
+  // Returns non-empty NotificationMessage if the rule is parsed successfully
+  // and the rule should apply to the user. |message_text| and |link_text| will
+  // not be set and caller needs to call FetchTranslatedText to fill them up.
+  base::Optional<NotificationMessage> ParseAndMatchRule(
+      const base::Value& rule,
+      const std::string& user_email,
+      std::string* out_message_text_filename,
+      std::string* out_link_text_filename);
+
+  void FetchTranslatedTexts(const std::string& message_text_filename,
+                            const std::string& link_text_filename,
+                            base::Optional<NotificationMessage> partial_message,
+                            NotificationCallback done);
+
+  std::unique_ptr<JsonFetcher> fetcher_;
+  std::string current_platform_;
+  std::string current_version_;
+  std::string locale_;
+
+  DISALLOW_COPY_AND_ASSIGN(NotificationClient);
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_CLIENT_H_
diff --git a/remoting/client/notification/notification_client_unittest.cc b/remoting/client/notification/notification_client_unittest.cc
new file mode 100644
index 0000000..fbc65b90
--- /dev/null
+++ b/remoting/client/notification/notification_client_unittest.cc
@@ -0,0 +1,260 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/notification/notification_client.h"
+
+#include <memory>
+
+#include "base/memory/ptr_util.h"
+#include "base/optional.h"
+#include "base/test/mock_callback.h"
+#include "base/values.h"
+#include "remoting/client/notification/json_fetcher.h"
+#include "remoting/client/notification/notification_message.h"
+#include "testing/gmock/include/gmock/gmock.h"
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace remoting {
+
+namespace {
+
+using ::testing::ByMove;
+using ::testing::Return;
+
+constexpr char kTestEmail[] = "test@example.com";
+constexpr char kTestPlatform[] = "IOS";
+constexpr char kTestVersion[] = "76.0.3809.13";
+constexpr char kTestLocale[] = "zh-CN";
+
+class MockJsonFetcher : public JsonFetcher {
+ public:
+  // GMock doesn't work with rvalue parameters. This works around it.
+  MOCK_CONST_METHOD1(FetchJsonFile,
+                     base::Optional<base::Value>(const std::string&));
+  void FetchJsonFile(const std::string& relative_path,
+                     base::OnceCallback<void(base::Optional<base::Value>)> done)
+      const override {
+    auto value_opt = FetchJsonFile(relative_path);
+    std::move(done).Run(std::move(value_opt));
+  }
+};
+
+MATCHER(NoMessage, "") {
+  return !arg.has_value();
+}
+
+MATCHER_P(MessageMatches, expected, "") {
+  return arg->appearance == expected.appearance &&
+         arg->message_text == expected.message_text &&
+         arg->link_text == expected.link_text &&
+         arg->link_url == expected.link_url;
+}
+
+template <typename T>
+decltype(auto) ReturnByMove(T t) {
+  return Return(ByMove(std::move(t)));
+}
+
+base::Value CreateDefaultRule() {
+  base::Value rule(base::Value::Type::DICTIONARY);
+  rule.SetStringKey("appearance", "TOAST");
+  rule.SetStringKey("target_platform", "IOS");
+  rule.SetStringKey("version", "[75-)");
+  rule.SetStringKey("message_text", "message_text.json");
+  rule.SetStringKey("link_text", "link_text.json");
+  rule.SetStringKey("link_url", "https://example.com/some_link");
+  rule.SetIntKey("percent", 100);
+  return rule;
+}
+
+base::Value CreateDefaultTranslations(const std::string& text) {
+  base::Value translations(base::Value::Type::DICTIONARY);
+  translations.SetStringKey("en-US", "en-US:" + text);
+  translations.SetStringKey("zh-CN", "zh-CN:" + text);
+  return translations;
+}
+
+NotificationMessage CreateDefaultNotification() {
+  NotificationMessage message;
+  message.appearance = NotificationMessage::Appearance::TOAST;
+  message.message_text = "zh-CN:message";
+  message.link_text = "zh-CN:link";
+  message.link_url = "https://example.com/some_link";
+  return message;
+}
+
+}  // namespace
+
+class NotificationClientTest : public ::testing::Test {
+ public:
+  NotificationClientTest() {
+    auto fetcher = std::make_unique<MockJsonFetcher>();
+    fetcher_ = fetcher.get();
+    client_ = base::WrapUnique(new NotificationClient(
+        std::move(fetcher), kTestPlatform, kTestVersion, kTestLocale));
+  }
+
+  ~NotificationClientTest() override = default;
+
+ protected:
+  MockJsonFetcher* fetcher_;
+  std::unique_ptr<NotificationClient> client_;
+};
+
+TEST_F(NotificationClientTest, NoRule) {
+  base::Value rules(base::Value::Type::LIST);
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, DefaultRule) {
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(CreateDefaultRule());
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("message")));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("link")));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(MessageMatches(CreateDefaultNotification())));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, PlatformNotMatched) {
+  base::Value rule = CreateDefaultRule();
+  rule.SetStringKey("target_platform", "ANDROID");
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(std::move(rule));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, VersionNotMatched) {
+  base::Value rule = CreateDefaultRule();
+  rule.SetStringKey("version", "[77-)");
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(std::move(rule));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, UserNotSelected) {
+  base::Value rule = CreateDefaultRule();
+  rule.SetIntKey("percent", 0);
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(std::move(rule));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, SecondRuleMatches) {
+  base::Value rules(base::Value::Type::LIST);
+  base::Value rule_1 = CreateDefaultRule();
+  rule_1.SetStringKey("target_platform", "ANDROID");
+  rule_1.SetStringKey("message_text", "message_text_1.json");
+  rules.Append(std::move(rule_1));
+  rules.Append(CreateDefaultRule());
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("message")));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("link")));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(MessageMatches(CreateDefaultNotification())));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, MultipleMatchingRules_FirstRuleSelected) {
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(CreateDefaultRule());
+  base::Value rule_2 = CreateDefaultRule();
+  rule_2.SetStringKey("message_text", "message_text_2.json");
+  rules.Append(std::move(rule_2));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("message")));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("link")));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(MessageMatches(CreateDefaultNotification())));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, TextFilesNotFound) {
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(CreateDefaultRule());
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::Value translation = CreateDefaultTranslations("message");
+
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(base::nullopt));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(base::nullopt));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, TranslationNotFound_FallbackToEnglish) {
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(CreateDefaultRule());
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  base::Value translations = CreateDefaultTranslations("message");
+  translations.RemoveKey("zh-CN");
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(std::move(translations)));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(CreateDefaultTranslations("link")));
+
+  NotificationMessage notification = CreateDefaultNotification();
+  notification.message_text = "en-US:message";
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(MessageMatches(notification)));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+TEST_F(NotificationClientTest, NoAvailableTranslation) {
+  base::Value rules(base::Value::Type::LIST);
+  rules.Append(CreateDefaultRule());
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/rules.json"))
+      .WillOnce(ReturnByMove(std::move(rules)));
+
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/message_text.json"))
+      .WillOnce(ReturnByMove(base::Value(base::Value::Type::DICTIONARY)));
+  EXPECT_CALL(*fetcher_, FetchJsonFile("notification/link_text.json"))
+      .WillOnce(ReturnByMove(base::Value(base::Value::Type::DICTIONARY)));
+
+  base::MockCallback<NotificationClient::NotificationCallback> callback;
+  EXPECT_CALL(callback, Run(NoMessage()));
+  client_->GetNotification(kTestEmail, callback.Get());
+}
+
+}  // namespace remoting
\ No newline at end of file
diff --git a/remoting/client/notification/notification_message.cc b/remoting/client/notification/notification_message.cc
new file mode 100644
index 0000000..49fd524
--- /dev/null
+++ b/remoting/client/notification/notification_message.cc
@@ -0,0 +1,18 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/notification/notification_message.h"
+
+namespace remoting {
+
+NotificationMessage::NotificationMessage() = default;
+NotificationMessage::NotificationMessage(const NotificationMessage&) = default;
+NotificationMessage::NotificationMessage(NotificationMessage&&) = default;
+NotificationMessage::~NotificationMessage() = default;
+NotificationMessage& NotificationMessage::operator=(
+    const NotificationMessage&) = default;
+NotificationMessage& NotificationMessage::operator=(NotificationMessage&&) =
+    default;
+
+}  // namespace remoting
diff --git a/remoting/client/notification/notification_message.h b/remoting/client/notification/notification_message.h
new file mode 100644
index 0000000..ee28410
--- /dev/null
+++ b/remoting/client/notification/notification_message.h
@@ -0,0 +1,34 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_MESSAGE_H_
+#define REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_MESSAGE_H_
+
+#include <string>
+
+namespace remoting {
+
+struct NotificationMessage final {
+  enum class Appearance {
+    TOAST,
+    DIALOG,
+  };
+
+  NotificationMessage();
+  NotificationMessage(const NotificationMessage&);
+  NotificationMessage(NotificationMessage&&);
+  ~NotificationMessage();
+
+  NotificationMessage& operator=(const NotificationMessage&);
+  NotificationMessage& operator=(NotificationMessage&&);
+
+  Appearance appearance;
+  std::string message_text;
+  std::string link_text;
+  std::string link_url;
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_CLIENT_NOTIFICATION_NOTIFICATION_MESSAGE_H_
diff --git a/remoting/client/notification/version_range.cc b/remoting/client/notification/version_range.cc
new file mode 100644
index 0000000..b84aae5
--- /dev/null
+++ b/remoting/client/notification/version_range.cc
@@ -0,0 +1,108 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/notification/version_range.h"
+
+#include <stdint.h>
+
+#include <limits>
+
+#include "base/logging.h"
+
+namespace remoting {
+
+namespace {
+
+constexpr uint16_t kUnboundMinVersionNumber = 0;
+constexpr uint16_t kUnboundMaxVersionNumber =
+    std::numeric_limits<uint16_t>::max();
+
+}  // namespace
+
+VersionRange::VersionRange(const std::string& range_spec) {
+  if (range_spec.empty()) {
+    // Invalid.
+    return;
+  }
+
+  size_t dash_pos = range_spec.find('-');
+  if (dash_pos == std::string::npos) {
+    // May be a single version string.
+    min_version_ = base::make_optional<base::Version>(range_spec);
+    max_version_ = base::make_optional<base::Version>(*min_version_);
+    is_min_version_inclusive_ = true;
+    is_max_version_inclusive_ = true;
+    return;
+  }
+
+  char left_bracket = range_spec.front();
+  if (left_bracket != '[' && left_bracket != '(') {
+    // Invalid.
+    return;
+  }
+  is_min_version_inclusive_ = (left_bracket == '[');
+
+  char right_bracket = range_spec.back();
+  if (right_bracket != ']' && right_bracket != ')') {
+    // Invalid.
+    return;
+  }
+  is_max_version_inclusive_ = (right_bracket == ']');
+
+  DCHECK_GE(range_spec.size(), 3u);
+  DCHECK_GT(dash_pos, 0u);
+  DCHECK_LT(dash_pos, range_spec.size() - 1);
+
+  std::string min_version_string = range_spec.substr(1, dash_pos - 1);
+  if (min_version_string.empty()) {
+    // Unbound min version.
+    std::vector<uint32_t> version_components{kUnboundMinVersionNumber};
+    min_version_ =
+        base::make_optional<base::Version>(std::move(version_components));
+  } else {
+    min_version_ = base::make_optional<base::Version>(min_version_string);
+  }
+
+  std::string max_version_string = range_spec.substr(dash_pos + 1);
+  max_version_string.pop_back();
+  if (max_version_string.empty()) {
+    // Unbound max version.
+    std::vector<uint32_t> version_components{kUnboundMaxVersionNumber};
+    max_version_ =
+        base::make_optional<base::Version>(std::move(version_components));
+  } else {
+    max_version_ = base::make_optional<base::Version>(max_version_string);
+  }
+}
+
+VersionRange::~VersionRange() = default;
+
+bool VersionRange::IsValid() const {
+  return min_version_ && min_version_->IsValid() && max_version_ &&
+         max_version_->IsValid() && *min_version_ <= *max_version_;
+}
+
+bool VersionRange::ContainsVersion(const std::string& version_string) const {
+  if (!IsValid()) {
+    return false;
+  }
+  base::Version version(version_string);
+  if (!version.IsValid()) {
+    LOG(ERROR) << "Invalid version number: " << version_string;
+    return false;
+  }
+  int min_version_compare_result = min_version_->CompareTo(version);
+  if (min_version_compare_result > 0 ||
+      (min_version_compare_result == 0 && !is_min_version_inclusive_)) {
+    return false;
+  }
+  int max_version_compare_result = max_version_->CompareTo(version);
+  if (max_version_compare_result < 0 ||
+      (max_version_compare_result == 0 && !is_max_version_inclusive_)) {
+    return false;
+  }
+  return true;
+}
+
+}  // namespace remoting
diff --git a/remoting/client/notification/version_range.h b/remoting/client/notification/version_range.h
new file mode 100644
index 0000000..d788260
--- /dev/null
+++ b/remoting/client/notification/version_range.h
@@ -0,0 +1,52 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef REMOTING_CLIENT_NOTIFICATION_VERSION_RANGE_H_
+#define REMOTING_CLIENT_NOTIFICATION_VERSION_RANGE_H_
+
+#include <string>
+
+#include "base/macros.h"
+#include "base/optional.h"
+#include "base/version.h"
+
+namespace remoting {
+
+// Class representing a range of dotted version numbers. Supporting parsing and
+// in-range checking.
+class VersionRange final {
+ public:
+  // Parses a range spec into range.
+  //
+  // Format (regex):
+  //   ([\(\[]((\d+\.)*\d+)?-((\d+\.)*\d+)?[\)\]]|(\d+\.)*\d+)
+  //
+  // Examples:
+  //   1.2.3      Exactly 1.2.3
+  //   [-1.2.3)   Anything up to but not including 1.2.3
+  //   [1.2-3)    Anything between 1.2 (inclusive) and 3 (exclusive)
+  //   (1.2-3]    Anything between 1.2 (exclusive) and 3 (inclusive)
+  //   [1.2-)     1.2 (inclusive) and higher
+  //   [-]        Anything
+  //
+  // Min version must be less than or equal to max version.
+  explicit VersionRange(const std::string& range_spec);
+  ~VersionRange();
+
+  bool IsValid() const;
+  bool ContainsVersion(const std::string& version_string) const;
+
+ private:
+  base::Optional<base::Version> min_version_;
+  base::Optional<base::Version> max_version_;
+
+  bool is_min_version_inclusive_ = false;
+  bool is_max_version_inclusive_ = false;
+
+  DISALLOW_COPY_AND_ASSIGN(VersionRange);
+};
+
+}  // namespace remoting
+
+#endif  // REMOTING_CLIENT_NOTIFICATION_VERSION_RANGE_H_
diff --git a/remoting/client/notification/version_range_unittest.cc b/remoting/client/notification/version_range_unittest.cc
new file mode 100644
index 0000000..5169731
--- /dev/null
+++ b/remoting/client/notification/version_range_unittest.cc
@@ -0,0 +1,193 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "remoting/client/notification/version_range.h"
+
+#include "testing/gtest/include/gtest/gtest.h"
+
+namespace remoting {
+
+TEST(VersionRangeTest, ExactVersionMatch) {
+  VersionRange range("1.2.3");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.5"));
+}
+
+TEST(VersionRangeTest, UnboundMinimumExclusiveMaximum) {
+  VersionRange range("[-1.2.3)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_TRUE(range.ContainsVersion("0.1"));
+  ASSERT_TRUE(range.ContainsVersion("1.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.2"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.3"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.5"));
+  ASSERT_FALSE(range.ContainsVersion("2"));
+}
+
+TEST(VersionRangeTest, UnboundMinimumInclusiveMaximum) {
+  VersionRange range("[-1.2.3]");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_TRUE(range.ContainsVersion("0.1"));
+  ASSERT_TRUE(range.ContainsVersion("1.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.5"));
+  ASSERT_FALSE(range.ContainsVersion("2"));
+}
+
+TEST(VersionRangeTest, InclusiveMinimumUnboundMaximum) {
+  VersionRange range("[1.2.3-)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.5"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+}
+
+TEST(VersionRangeTest, ExclusiveMinimumUnboundMaximum) {
+  VersionRange range("(1.2.3-)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.2"));
+  ASSERT_FALSE(range.ContainsVersion("1.2.3"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.5"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+}
+
+TEST(VersionRangeTest, InclusiveMinimumExclusiveMaximum) {
+  VersionRange range("[1.2-3)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.1"));
+  ASSERT_TRUE(range.ContainsVersion("1.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+  ASSERT_FALSE(range.ContainsVersion("3"));
+  ASSERT_FALSE(range.ContainsVersion("4"));
+}
+
+TEST(VersionRangeTest, ExclusiveMinimumInclusiveMaximum) {
+  VersionRange range("(1.2-3]");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+  ASSERT_TRUE(range.ContainsVersion("3"));
+  ASSERT_FALSE(range.ContainsVersion("3.1"));
+  ASSERT_FALSE(range.ContainsVersion("4"));
+}
+
+TEST(VersionRangeTest, ExclusiveMinimumExclusiveMaximum) {
+  VersionRange range("(1.2-3)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.1"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.2"));
+  ASSERT_TRUE(range.ContainsVersion("1.2.3"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+  ASSERT_FALSE(range.ContainsVersion("3"));
+  ASSERT_FALSE(range.ContainsVersion("3.1"));
+  ASSERT_FALSE(range.ContainsVersion("4"));
+}
+
+TEST(VersionRangeTest, AnyVersion1) {
+  VersionRange range("(-)");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_TRUE(range.ContainsVersion("1"));
+  ASSERT_TRUE(range.ContainsVersion("1.1"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+  ASSERT_TRUE(range.ContainsVersion("3"));
+  ASSERT_TRUE(range.ContainsVersion("4"));
+}
+
+TEST(VersionRangeTest, AnyVersion2) {
+  VersionRange range("[-]");
+  ASSERT_TRUE(range.IsValid());
+  ASSERT_TRUE(range.ContainsVersion("1"));
+  ASSERT_TRUE(range.ContainsVersion("1.1"));
+  ASSERT_TRUE(range.ContainsVersion("2"));
+  ASSERT_TRUE(range.ContainsVersion("3"));
+  ASSERT_TRUE(range.ContainsVersion("4"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError1) {
+  VersionRange range("");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError2) {
+  VersionRange range("90j3awef");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError3) {
+  VersionRange range("[1.2)");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError4) {
+  VersionRange range("[1.2-");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError5) {
+  VersionRange range("1.2-)");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError6) {
+  VersionRange range("1.2-");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError7) {
+  VersionRange range("-1.2");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError8) {
+  VersionRange range("[-1.2");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_SyntaxError9) {
+  VersionRange range("-1.2)");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("0"));
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+}
+
+TEST(VersionRangeTest, InvalidRangeSpec_MinBiggerThanMax) {
+  VersionRange range("[3.4-1.2)");
+  ASSERT_FALSE(range.IsValid());
+  ASSERT_FALSE(range.ContainsVersion("1.2"));
+  ASSERT_FALSE(range.ContainsVersion("2.0"));
+  ASSERT_FALSE(range.ContainsVersion("3.4"));
+}
+
+}  // namespace remoting
diff --git a/remoting/resources/remoting_strings_te.xtb b/remoting/resources/remoting_strings_te.xtb
index 420e98d..16afcf5 100644
--- a/remoting/resources/remoting_strings_te.xtb
+++ b/remoting/resources/remoting_strings_te.xtb
@@ -183,7 +183,7 @@
 <translation id="5419185025274123272">యాప్‌ను రీసెట్ చేయలేకపోయింది. అయినప్పటికీ, మీరు బగ్ నివేదికను పంపవచ్చు.</translation>
 <translation id="5419418238395129586">చివరిగా ఆన్‌లైన్‌లో ఉన్నది: <ph name="DATE" /></translation>
 <translation id="544077782045763683">హోస్ట్ షట్‌డౌన్ అయ్యింది.</translation>
-<translation id="5463789431147491241"><ph name="PRODUCT_NAME" />ను ఈ మెషిన్‌లో ఉపయోగించడానికి, ఈ దశలను అనుసరించండి:
+<translation id="5463789431147491241"><ph name="PRODUCT_NAME" />ను ఈ Macలో ఉపయోగించడానికి, ఈ దశలను అనుసరించండి:
 
 కింది '<ph name="BUTTON_NAME" />'ను ఎంచుకోండి. మీ భద్రత మరియు గోప్యతా ప్రాధాన్యతలలో, '<ph name="SERVICE_SCRIPT_NAME" />' పక్కన ఉన్న బాక్స్‌ను ఎంచుకోండి.
 
@@ -304,7 +304,7 @@
 <translation id="837021510621780684">ఈ కంప్యూటర్ నుండి</translation>
 <translation id="8383794970363966105">Chromoting ఉపయోగించడానికి, మీ పరికరానికి Google ఖాతాను జోడించాలి.</translation>
 <translation id="8386846956409881180">హోస్ట్ చెల్లని OAuth ఆధారాలతో కాన్ఫిగర్ చేయబడింది.</translation>
-<translation id="8406498562923498210">మీ Chrome రిమోట్ డెస్క్‌టాప్ పరిసరాల పరిమితిలో ఉండే ఒక సెషన్‌ను ప్రారంభించడానికి ఎంపిక చేసుకోండి. (Chrome రిమోట్ డెస్క్‌టాప్ పరిసరాల పరిమితిలోను, స్థానిక కన్సోల్ మీద ఏకకాలంలో పనిచేయడం అనేది కొన్ని రకాల సెషన్‌లకు సాధ్యం కాకపోవచ్చు. ఈ విషయం గమనించండి.)</translation>
+<translation id="8406498562923498210">మీ Chrome రిమోట్ డెస్క్‌టాప్ పరిసరాల పరిమితిలో ఉండే ఒక సెషన్‌ను ప్రారంభించడానికి ఎంపిక చేసుకోండి. (Chrome రిమోట్ డెస్క్‌టాప్ పరిసరాల పరిమితిలో, స్థానిక కన్సోల్ మీద ఏకకాలంలో పని చేయడం అనేది కొన్ని రకాల సెషన్‌లకు సాధ్యం కాకపోవచ్చు అనే విషయాన్ని గుర్తుంచుకోండి.)</translation>
 <translation id="8428213095426709021">సెట్టింగ్‌లు</translation>
 <translation id="8445362773033888690">Google Play స్టోర్‌లో వీక్షించండి</translation>
 <translation id="8509907436388546015">డెస్క్‌టాప్ ఏకీకరణ ప్రక్రియ</translation>
diff --git a/services/BUILD.gn b/services/BUILD.gn
index 2f7e9d0..6096ff2 100644
--- a/services/BUILD.gn
+++ b/services/BUILD.gn
@@ -150,6 +150,8 @@
       "//services/shape_detection:shape_detection_java",
       "//services/shape_detection/public/mojom:mojom_java",
       "//skia/public/mojom:mojom_java",
+      "//third_party/android_deps:androidx_test_monitor_java",
+      "//third_party/android_deps:androidx_test_runner_java",
       "//third_party/android_support_test_runner:runner_java",
       "//third_party/junit",
       "//ui/gfx/geometry/mojom:mojom_java",
diff --git a/services/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java b/services/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
index 03bd0671..b489fd3 100644
--- a/services/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
+++ b/services/device/battery/android/javatests/src/org/chromium/device/battery/BatteryStatusManagerTest.java
@@ -8,7 +8,8 @@
 import android.os.BatteryManager;
 import android.os.Build;
 import android.support.test.InstrumentationRegistry;
-import android.support.test.filters.SmallTest;
+
+import androidx.test.filters.SmallTest;
 
 import org.junit.Assert;
 import org.junit.Before;
diff --git a/services/network/network_context.cc b/services/network/network_context.cc
index 68d45c41..1e57454 100644
--- a/services/network/network_context.cc
+++ b/services/network/network_context.cc
@@ -1088,9 +1088,9 @@
 }
 
 void NetworkContext::CreateNetLogExporter(
-    mojom::NetLogExporterRequest request) {
-  net_log_exporter_bindings_.AddBinding(std::make_unique<NetLogExporter>(this),
-                                        std::move(request));
+    mojo::PendingReceiver<mojom::NetLogExporter> receiver) {
+  net_log_exporter_receivers_.Add(std::make_unique<NetLogExporter>(this),
+                                  std::move(receiver));
 }
 
 void NetworkContext::ResolveHost(
diff --git a/services/network/network_context.h b/services/network/network_context.h
index 21dd391..8a5a74b 100644
--- a/services/network/network_context.h
+++ b/services/network/network_context.h
@@ -27,6 +27,7 @@
 #include "mojo/public/cpp/bindings/receiver.h"
 #include "mojo/public/cpp/bindings/remote.h"
 #include "mojo/public/cpp/bindings/strong_binding_set.h"
+#include "mojo/public/cpp/bindings/unique_receiver_set.h"
 #include "net/cert/cert_verifier.h"
 #include "net/cert/cert_verify_result.h"
 #include "net/dns/dns_config_overrides.h"
@@ -278,7 +279,8 @@
       mojo::PendingRemote<mojom::WebSocketHandshakeClient> handshake_client,
       mojo::PendingRemote<mojom::AuthenticationHandler> auth_handler,
       mojo::PendingRemote<mojom::TrustedHeaderClient> header_client) override;
-  void CreateNetLogExporter(mojom::NetLogExporterRequest request) override;
+  void CreateNetLogExporter(
+      mojo::PendingReceiver<mojom::NetLogExporter> receiver) override;
   void ResolveHost(const net::HostPortPair& host,
                    mojom::ResolveHostParametersPtr optional_parameters,
                    mojom::ResolveHostClientPtr response_client) override;
@@ -527,7 +529,7 @@
   std::unique_ptr<MdnsResponderManager> mdns_responder_manager_;
 #endif  // BUILDFLAG(ENABLE_MDNS)
 
-  mojo::StrongBindingSet<mojom::NetLogExporter> net_log_exporter_bindings_;
+  mojo::UniqueReceiverSet<mojom::NetLogExporter> net_log_exporter_receivers_;
 
   // Ordering: this must be after |cookie_manager_| since it points to its
   // CookieSettings object.
diff --git a/services/network/network_context_unittest.cc b/services/network/network_context_unittest.cc
index c497737..e3e8fff1 100644
--- a/services/network/network_context_unittest.cc
+++ b/services/network/network_context_unittest.cc
@@ -1244,92 +1244,6 @@
   }
 }
 
-TEST_F(NetworkContextTest, HttpRequestCompletionErrorCodes) {
-  net::EmbeddedTestServer test_server;
-  test_server.AddDefaultHandlers(
-      base::FilePath(FILE_PATH_LITERAL("services/test/data")));
-  ASSERT_TRUE(test_server.Start());
-
-  net::EmbeddedTestServer https_test_server(
-      net::test_server::EmbeddedTestServer::TYPE_HTTPS);
-  https_test_server.AddDefaultHandlers(
-      base::FilePath(FILE_PATH_LITERAL("services/test/data")));
-  ASSERT_TRUE(https_test_server.Start());
-
-  const struct {
-    const char* path;
-    bool use_https;
-    bool is_main_frame;
-    int expected_net_error;
-    int expected_request_completion_count;
-    int expected_request_completion_main_frame_count;
-  } kTests[] = {
-      {"/", false /* use_https */, true /* is_main_frame */, net::OK,
-       1 /* expected_request_completion_count */,
-       1 /* expected_request_completion_main_frame_count */},
-      {"/close-socket", false /* use_https */, true /* is_main_frame */,
-       net::ERR_EMPTY_RESPONSE, 1 /* expected_request_completion_count */,
-       1 /* expected_request_completion_main_frame_count */},
-      {"/", false /* use_https */, false /* is_main_frame */, net::OK,
-       1 /* expected_request_completion_count */,
-       0 /* expected_request_completion_main_frame_count */},
-      {"/", true /* use_https */, true /* is_main_frame */, net::OK,
-       0 /* expected_request_completion_count */,
-       0 /* expected_request_completion_main_frame_count */},
-  };
-
-  const char kHttpRequestCompletionErrorCode[] =
-      "Net.HttpRequestCompletionErrorCodes";
-  const char kHttpRequestCompletionErrorCodeMainFrame[] =
-      "Net.HttpRequestCompletionErrorCodes.MainFrame";
-
-  for (const auto& test : kTests) {
-    base::HistogramTester histograms;
-
-    std::unique_ptr<NetworkContext> network_context =
-        CreateContextWithParams(CreateContextParams());
-
-    mojom::URLLoaderFactoryPtr loader_factory;
-    mojom::URLLoaderFactoryParamsPtr params =
-        mojom::URLLoaderFactoryParams::New();
-    params->process_id = mojom::kBrowserProcessId;
-    network_context->CreateURLLoaderFactory(mojo::MakeRequest(&loader_factory),
-                                            std::move(params));
-
-    ResourceRequest request;
-    if (!test.use_https) {
-      request.url = test_server.GetURL(test.path);
-    } else {
-      request.url = https_test_server.GetURL(test.path);
-    }
-    if (test.is_main_frame)
-      request.load_flags = net::LOAD_MAIN_FRAME_DEPRECATED;
-
-    mojom::URLLoaderPtr loader;
-    TestURLLoaderClient client;
-    loader_factory->CreateLoaderAndStart(
-        mojo::MakeRequest(&loader), 0 /* routing_id */, 0 /* request_id */,
-        0 /* options */, request, client.CreateInterfacePtr(),
-        net::MutableNetworkTrafficAnnotationTag(TRAFFIC_ANNOTATION_FOR_TESTS));
-
-    client.RunUntilComplete();
-    EXPECT_TRUE(client.has_received_completion());
-    EXPECT_EQ(test.expected_net_error, client.completion_status().error_code);
-
-    histograms.ExpectTotalCount(kHttpRequestCompletionErrorCode,
-                                test.expected_request_completion_count);
-    histograms.ExpectUniqueSample(kHttpRequestCompletionErrorCode,
-                                  -test.expected_net_error,
-                                  test.expected_request_completion_count);
-    histograms.ExpectTotalCount(
-        kHttpRequestCompletionErrorCodeMainFrame,
-        test.expected_request_completion_main_frame_count);
-    histograms.ExpectUniqueSample(
-        kHttpRequestCompletionErrorCodeMainFrame, -test.expected_net_error,
-        test.expected_request_completion_main_frame_count);
-  }
-}
-
 // Validates that clearing the HTTP cache when no cache exists does complete.
 TEST_F(NetworkContextTest, ClearHttpCacheWithNoCache) {
   mojom::NetworkContextParamsPtr context_params = CreateContextParams();
@@ -2523,8 +2437,9 @@
   std::unique_ptr<NetworkContext> network_context =
       CreateContextWithParams(CreateContextParams());
 
-  mojom::NetLogExporterPtr net_log_exporter;
-  network_context->CreateNetLogExporter(mojo::MakeRequest(&net_log_exporter));
+  mojo::Remote<mojom::NetLogExporter> net_log_exporter;
+  network_context->CreateNetLogExporter(
+      net_log_exporter.BindNewPipeAndPassReceiver());
 
   base::ScopedTempDir temp_dir;
   ASSERT_TRUE(temp_dir.CreateUniqueTempDir());
@@ -2573,8 +2488,9 @@
   std::unique_ptr<NetworkContext> network_context =
       CreateContextWithParams(CreateContextParams());
 
-  mojom::NetLogExporterPtr net_log_exporter;
-  network_context->CreateNetLogExporter(mojo::MakeRequest(&net_log_exporter));
+  mojo::Remote<mojom::NetLogExporter> net_log_exporter;
+  network_context->CreateNetLogExporter(
+      net_log_exporter.BindNewPipeAndPassReceiver());
 
   base::FilePath temp_path;
   ASSERT_TRUE(base::CreateTemporaryFile(&temp_path));
@@ -2610,8 +2526,9 @@
   std::unique_ptr<NetworkContext> network_context =
       CreateContextWithParams(CreateContextParams());
 
-  mojom::NetLogExporterPtr net_log_exporter;
-  network_context->CreateNetLogExporter(mojo::MakeRequest(&net_log_exporter));
+  mojo::Remote<mojom::NetLogExporter> net_log_exporter;
+  network_context->CreateNetLogExporter(
+      net_log_exporter.BindNewPipeAndPassReceiver());
 
   net::TestCompletionCallback stop_callback;
   net_log_exporter->Stop(base::Value(base::Value::Type::DICTIONARY),
diff --git a/services/network/network_service_network_delegate.cc b/services/network/network_service_network_delegate.cc
index e5c96a8..49407aa 100644
--- a/services/network/network_service_network_delegate.cc
+++ b/services/network/network_service_network_delegate.cc
@@ -8,7 +8,6 @@
 
 #include "base/bind.h"
 #include "base/debug/dump_without_crashing.h"
-#include "base/metrics/histogram_functions.h"
 #include "base/strings/utf_string_conversions.h"
 #include "build/build_config.h"
 #include "components/domain_reliability/monitor.h"
@@ -162,22 +161,6 @@
                                                                 started);
   }
 
-  // Record network errors that HTTP requests complete with, including OK and
-  // ABORTED.
-  // TODO(mmenke): Seems like this really should be looking at HTTPS requests,
-  // too.
-  // TODO(mmenke): We should remove the main frame case from here, and move it
-  // into the consumer - the network service shouldn't know what a main frame
-  // is.
-  if (request->url().SchemeIs("http")) {
-    base::UmaHistogramSparse("Net.HttpRequestCompletionErrorCodes", -net_error);
-
-    if (request->load_flags() & net::LOAD_MAIN_FRAME_DEPRECATED) {
-      base::UmaHistogramSparse("Net.HttpRequestCompletionErrorCodes.MainFrame",
-                               -net_error);
-    }
-  }
-
   ForwardProxyErrors(net_error);
 }
 
diff --git a/services/network/public/mojom/network_context.mojom b/services/network/public/mojom/network_context.mojom
index 21b48f5..94d19db 100644
--- a/services/network/public/mojom/network_context.mojom
+++ b/services/network/public/mojom/network_context.mojom
@@ -1049,7 +1049,7 @@
   // managed by the same NetworkService. The particular NetworkContext this is
   // called on will determine which NetworkContext gets its information and
   // configuration summary written out at the end of the log.
-  CreateNetLogExporter(NetLogExporter& exporter);
+  CreateNetLogExporter(pending_receiver<NetLogExporter> receiver);
 
   // Tries to preconnect to |url|. |num_streams| may be used to request more
   // than one connection be established in parallel.
diff --git a/services/network/test/test_network_context.h b/services/network/test/test_network_context.h
index 34a8050..252df767 100644
--- a/services/network/test/test_network_context.h
+++ b/services/network/test/test_network_context.h
@@ -12,6 +12,7 @@
 #include "base/component_export.h"
 #include "base/optional.h"
 #include "base/time/time.h"
+#include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "net/base/address_list.h"
 #include "net/base/ip_endpoint.h"
 #include "net/traffic_annotation/network_traffic_annotation.h"
@@ -155,7 +156,8 @@
   void LookUpProxyForURL(
       const GURL& url,
       ::network::mojom::ProxyLookupClientPtr proxy_lookup_client) override {}
-  void CreateNetLogExporter(mojom::NetLogExporterRequest exporter) override {}
+  void CreateNetLogExporter(
+      mojo::PendingReceiver<mojom::NetLogExporter> receiver) override {}
   void ResolveHost(const net::HostPortPair& host,
                    mojom::ResolveHostParametersPtr optional_parameters,
                    mojom::ResolveHostClientPtr response_client) override {}
diff --git a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/BarcodeDetectionImplTest.java b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/BarcodeDetectionImplTest.java
index 0c570c6..4e5bb818 100644
--- a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/BarcodeDetectionImplTest.java
+++ b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/BarcodeDetectionImplTest.java
@@ -4,7 +4,7 @@
 
 package org.chromium.shape_detection;
 
-import android.support.test.filters.SmallTest;
+import androidx.test.filters.SmallTest;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java
index f57610a3..be281d9 100644
--- a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java
+++ b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/FaceDetectionImplTest.java
@@ -8,7 +8,8 @@
 import android.graphics.Canvas;
 import android.graphics.Matrix;
 import android.graphics.RectF;
-import android.support.test.filters.SmallTest;
+
+import androidx.test.filters.SmallTest;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java
index 91b867c..953301a 100644
--- a/services/shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java
+++ b/services/shape_detection/android/javatests/src/org/chromium/shape_detection/TextDetectionImplTest.java
@@ -4,7 +4,7 @@
 
 package org.chromium.shape_detection;
 
-import android.support.test.filters.SmallTest;
+import androidx.test.filters.SmallTest;
 
 import org.junit.Assert;
 import org.junit.Test;
diff --git a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
index b167ef914..2051d34 100644
--- a/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
+++ b/services/viz/public/cpp/compositing/mojom_traits_unittest.cc
@@ -624,8 +624,7 @@
   const uint32_t root_background_color = 1337;
   ui::LatencyInfo latency_info;
   latency_info.set_trace_id(5);
-  latency_info.AddLatencyNumber(
-      ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT);
+  latency_info.AddLatencyNumber(ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT);
   std::vector<ui::LatencyInfo> latency_infos = {latency_info};
   std::vector<SurfaceRange> referenced_surfaces;
   SurfaceId id(FrameSinkId(1234, 4321),
@@ -677,7 +676,7 @@
   EXPECT_EQ(root_background_color, output.root_background_color);
   EXPECT_EQ(latency_infos.size(), output.latency_info.size());
   EXPECT_TRUE(output.latency_info[0].FindLatency(
-      ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT, nullptr));
+      ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT, nullptr));
   EXPECT_EQ(referenced_surfaces.size(), output.referenced_surfaces.size());
   for (uint32_t i = 0; i < referenced_surfaces.size(); ++i)
     EXPECT_EQ(referenced_surfaces[i], output.referenced_surfaces[i]);
diff --git a/testing/variations/fieldtrial_testing_config.json b/testing/variations/fieldtrial_testing_config.json
index fbcfbf1..a91bb23 100644
--- a/testing/variations/fieldtrial_testing_config.json
+++ b/testing/variations/fieldtrial_testing_config.json
@@ -2641,6 +2641,24 @@
             ]
         }
     ],
+    "GestureNavigation": [
+        {
+            "platforms": [
+                "android"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "params": {
+                        "overscroll_history_navigation_bottom_sheet": "true"
+                    },
+                    "enable_features": [
+                        "OverscrollHistoryNavigation"
+                    ]
+                }
+            ]
+        }
+    ],
     "GlobalMediaControlsInProductHelp": [
         {
             "platforms": [
@@ -6039,6 +6057,21 @@
             ]
         }
     ],
+    "TabSwitcherLongpressMenu": [
+        {
+            "platforms": [
+                "android"
+            ],
+            "experiments": [
+                {
+                    "name": "Enabled",
+                    "enable_features": [
+                        "TabSwitcherLongpressMenu"
+                    ]
+                }
+            ]
+        }
+    ],
     "TabToGTSAnimation": [
         {
             "platforms": [
diff --git a/third_party/blink/public/platform/web_localized_string.h b/third_party/blink/public/platform/web_localized_string.h
index 61028d0..0f38d45 100644
--- a/third_party/blink/public/platform/web_localized_string.h
+++ b/third_party/blink/public/platform/web_localized_string.h
@@ -35,7 +35,6 @@
 
 struct WebLocalizedString {
   enum Name {
-    kAXAMPMFieldText,
     kAXDayOfMonthFieldText,
     kAXHourFieldText,
     kAXMediaAudioElement,
@@ -88,18 +87,8 @@
     kOtherDateLabel,
     kOtherMonthLabel,
     kOtherWeekLabel,
-    kOverflowMenuCaptions,
     kOverflowMenuCaptionsSubmenuTitle,
-    kOverflowMenuCast,
-    kOverflowMenuEnterFullscreen,
-    kOverflowMenuExitFullscreen,
-    kOverflowMenuMute,
     kOverflowMenuUnmute,
-    kOverflowMenuPlay,
-    kOverflowMenuPause,
-    kOverflowMenuDownload,
-    kOverflowMenuEnterPictureInPicture,
-    kOverflowMenuExitPictureInPicture,
     kPictureInPictureInterstitialText,
     // kPlaceholderForDayOfMonthField is for day placeholder text, e.g.
     // "dd", for date field used in multiple fields "date", "datetime", and
diff --git a/third_party/blink/public/strings/translations/blink_strings_fil.xtb b/third_party/blink/public/strings/translations/blink_strings_fil.xtb
index b3baf6c9..4d85573 100644
--- a/third_party/blink/public/strings/translations/blink_strings_fil.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_fil.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">direktoryo</translation>
 <translation id="689129560213475294">colophon</translation>
 <translation id="6934078000481955284">blockquote</translation>
+<translation id="693476918119313863">header</translation>
 <translation id="6941933287844615239">i-download ang media</translation>
 <translation id="6981594929165378967">paglagay</translation>
 <translation id="6989848892321993519">Pakidagdagan ang text na ito nang hanggang <ph name="MIN_CHARACTERS" /> (na) character o higit pa (kasalukuyan kang gumagamit ng 1 character).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_hi.xtb b/third_party/blink/public/strings/translations/blink_strings_hi.xtb
index 774c3bd..da4387f 100644
--- a/third_party/blink/public/strings/translations/blink_strings_hi.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_hi.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">निर्देशिका</translation>
 <translation id="689129560213475294">कॉलफ़न</translation>
 <translation id="6934078000481955284">ब्लॉककोट</translation>
+<translation id="693476918119313863">हेडर</translation>
 <translation id="6941933287844615239">मीडिया डाउनलोड करें</translation>
 <translation id="6981594929165378967">डालना</translation>
 <translation id="6989848892321993519">कृपया इस लेख को <ph name="MIN_CHARACTERS" /> या उससे ज़्यादा वर्णों तक बढ़ाएं (आप इस समय 1 वर्ण का उपयोग कर रहे हैं).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_iw.xtb b/third_party/blink/public/strings/translations/blink_strings_iw.xtb
index 69d4b30..91febdb 100644
--- a/third_party/blink/public/strings/translations/blink_strings_iw.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_iw.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">ספריה</translation>
 <translation id="689129560213475294">קולופון</translation>
 <translation id="6934078000481955284">‏רכיב blockquote</translation>
+<translation id="693476918119313863">כותרת</translation>
 <translation id="6941933287844615239">הורד מדיה</translation>
 <translation id="6981594929165378967">הוספה</translation>
 <translation id="6989848892321993519">עליך להאריך את הטקסט ל-<ph name="MIN_CHARACTERS" /> תווים או יותר (אתה משתמש כרגע בתו אחד).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_kn.xtb b/third_party/blink/public/strings/translations/blink_strings_kn.xtb
index d6289d9..b4d8a56 100644
--- a/third_party/blink/public/strings/translations/blink_strings_kn.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_kn.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">ಡೈರೆಕ್ಟರಿ</translation>
 <translation id="689129560213475294">ಕೊಲೊಫೋನ್</translation>
 <translation id="6934078000481955284">ಬ್ಲಾಕ್‌ಕೋಟ್</translation>
+<translation id="693476918119313863">ಶಿರೋಲೇಖ</translation>
 <translation id="6941933287844615239">ಮಾಧ್ಯಮ ಡೌನ್‌ಲೋಡ್</translation>
 <translation id="6981594929165378967">ಅಳವಡಿಕೆ</translation>
 <translation id="6989848892321993519">ಈ ಪಠ್ಯವನ್ನು <ph name="MIN_CHARACTERS" /> ಅಥವಾ ಇದಕ್ಕಿಂತಲೂ ಹೆಚ್ಚಿನ ಅಕ್ಷರಗಳಿಗೆ ಉದ್ದಗೊಳಿಸಿ (ನೀವು ಪ್ರಸ್ತುತ 1 ಅಕ್ಷರಗಳನ್ನು ಬಳಸುತ್ತಿರುವಿರಿ).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_ta.xtb b/third_party/blink/public/strings/translations/blink_strings_ta.xtb
index 4a11a82..e5e38a7 100644
--- a/third_party/blink/public/strings/translations/blink_strings_ta.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_ta.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">கோப்பகம்</translation>
 <translation id="689129560213475294">முத்திரை</translation>
 <translation id="6934078000481955284">பிளாக்கோட்</translation>
+<translation id="693476918119313863">மேற்குறிப்பு</translation>
 <translation id="6941933287844615239">மீடியாவைப் பதிவிறக்கு</translation>
 <translation id="6981594929165378967">செருகும்</translation>
 <translation id="6989848892321993519">இந்த உரையில் <ph name="MIN_CHARACTERS" /> அல்லது அதற்கு மேற்பட்ட எழுத்துக்குறிகளைப் பயன்படுத்தவும் (தற்போது 1 எழுத்துக்குறியைப் பயன்படுத்துகிறீர்கள்).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_vi.xtb b/third_party/blink/public/strings/translations/blink_strings_vi.xtb
index c280083..f0e55e24 100644
--- a/third_party/blink/public/strings/translations/blink_strings_vi.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_vi.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">thư mục</translation>
 <translation id="689129560213475294">lời ghi cuối sách</translation>
 <translation id="6934078000481955284">khung trích dẫn</translation>
+<translation id="693476918119313863">tiêu đề</translation>
 <translation id="6941933287844615239">tải xuống phương tiện</translation>
 <translation id="6981594929165378967">chèn</translation>
 <translation id="6989848892321993519">Vui lòng kéo dài văn bản này thành <ph name="MIN_CHARACTERS" /> ký tự trở lên (bạn hiện đang sử dụng 1 ký tự).</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb b/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
index 3c23250..2ab27fe7 100644
--- a/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_zh-CN.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">目录</translation>
 <translation id="689129560213475294">版权页</translation>
 <translation id="6934078000481955284">引用标记</translation>
+<translation id="693476918119313863">标题</translation>
 <translation id="6941933287844615239">下载媒体</translation>
 <translation id="6981594929165378967">插入</translation>
 <translation id="6989848892321993519">请将该内容增加到 <ph name="MIN_CHARACTERS" /> 个或更多字符(目前您使用了 1 个字符)。</translation>
diff --git a/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb b/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
index 95c5641e..66fc106 100644
--- a/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
+++ b/third_party/blink/public/strings/translations/blink_strings_zh-TW.xtb
@@ -179,6 +179,7 @@
 <translation id="6885760532393684712">目錄</translation>
 <translation id="689129560213475294">版權頁標記</translation>
 <translation id="6934078000481955284">引用標記</translation>
+<translation id="693476918119313863">頁首</translation>
 <translation id="6941933287844615239">下載媒體</translation>
 <translation id="6981594929165378967">插入</translation>
 <translation id="6989848892321993519">請將這段文字加長到 <ph name="MIN_CHARACTERS" /> 個字元以上 (目前已有 1 個字元)。</translation>
diff --git a/third_party/blink/public/web/web_embedded_worker.h b/third_party/blink/public/web/web_embedded_worker.h
index c3fd121..66b856f98 100644
--- a/third_party/blink/public/web/web_embedded_worker.h
+++ b/third_party/blink/public/web/web_embedded_worker.h
@@ -72,7 +72,7 @@
 
   // Starts and terminates WorkerThread and WorkerGlobalScope.
   virtual void StartWorkerContext(
-      const WebEmbeddedWorkerStartData&,
+      std::unique_ptr<WebEmbeddedWorkerStartData>,
       std::unique_ptr<WebServiceWorkerInstalledScriptsManagerParams>,
       mojo::ScopedMessagePipeHandle content_settings_handle,
       scoped_refptr<base::SingleThreadTaskRunner>
diff --git a/third_party/blink/public/web/web_local_frame_client.h b/third_party/blink/public/web/web_local_frame_client.h
index 47a2e2f..31837ad0 100644
--- a/third_party/blink/public/web/web_local_frame_client.h
+++ b/third_party/blink/public/web/web_local_frame_client.h
@@ -635,10 +635,6 @@
   // connection with certificate errors.
   virtual void DidRunContentWithCertificateErrors() {}
 
-  // The frame loaded a resource with a legacy TLS version that will be removed
-  // in the future. Prints a console message to warn about this.
-  virtual void ReportLegacyTLSVersion(const WebURL&) {}
-
   // A performance timing event (e.g. first paint) occurred
   virtual void DidChangePerformanceTiming() {}
 
diff --git a/third_party/blink/renderer/bindings/bindings.gni b/third_party/blink/renderer/bindings/bindings.gni
index 7465ab21..3ba7f441 100644
--- a/third_party/blink/renderer/bindings/bindings.gni
+++ b/third_party/blink/renderer/bindings/bindings.gni
@@ -217,6 +217,8 @@
           "core/v8/serialization/v8_script_value_serializer_test.cc",
           "core/v8/v8_extras_test_utils.cc",
           "core/v8/v8_extras_test_utils.h",
+          "core/v8/script_promise_tester.cc",
+          "core/v8/script_promise_tester.h",
         ],
         "abspath")
 bindings_unittest_files += bindings_modules_v8_unittest_files
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise_tester.cc b/third_party/blink/renderer/bindings/core/v8/script_promise_tester.cc
new file mode 100644
index 0000000..c9f005b
--- /dev/null
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_tester.cc
@@ -0,0 +1,82 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "third_party/blink/renderer/bindings/core/v8/script_promise_tester.h"
+
+#include <utility>
+
+#include "third_party/blink/renderer/bindings/core/v8/script_function.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
+#include "third_party/blink/renderer/platform/bindings/script_state.h"
+#include "third_party/blink/renderer/platform/heap/heap.h"
+#include "third_party/blink/renderer/platform/heap/visitor.h"
+#include "third_party/blink/renderer/platform/testing/unit_test_helpers.h"
+#include "v8/include/v8.h"
+
+namespace blink {
+
+class ScriptPromiseTester::ThenFunction : public ScriptFunction {
+ public:
+  static v8::Local<v8::Function> CreateFunction(
+      ScriptState* script_state,
+      base::WeakPtr<ScriptPromiseTester> owner,
+      ScriptPromiseTester::State target_state) {
+    ThenFunction* self = MakeGarbageCollected<ThenFunction>(
+        script_state, std::move(owner), target_state);
+    return self->BindToV8Function();
+  }
+
+  ThenFunction(ScriptState* script_state,
+               base::WeakPtr<ScriptPromiseTester> owner,
+               ScriptPromiseTester::State target_state)
+      : ScriptFunction(script_state),
+        owner_(std::move(owner)),
+        target_state_(target_state) {}
+
+  ScriptValue Call(ScriptValue value) override {
+    if (!owner_)
+      return value;
+
+    DCHECK_EQ(owner_->state_, State::kNotSettled);
+    owner_->state_ = target_state_;
+
+    DCHECK(owner_->value_.IsEmpty());
+    owner_->value_ = value;
+    return value;
+  }
+
+ private:
+  base::WeakPtr<ScriptPromiseTester> owner_;
+  State target_state_;
+};
+
+ScriptPromiseTester::ScriptPromiseTester(ScriptState* script_state,
+                                         ScriptPromise script_promise)
+    : script_state_(script_state) {
+  DCHECK(script_state);
+  script_promise.Then(
+      ThenFunction::CreateFunction(script_state, weak_factory_.GetWeakPtr(),
+                                   State::kFulfilled),
+      ThenFunction::CreateFunction(script_state, weak_factory_.GetWeakPtr(),
+                                   State::kRejected));
+}
+
+void ScriptPromiseTester::WaitUntilSettled() {
+  auto* isolate = script_state_->GetIsolate();
+  while (state_ == State::kNotSettled) {
+    v8::MicrotasksScope::PerformCheckpoint(isolate);
+    test::RunPendingTasks();
+  }
+}
+
+ScriptValue ScriptPromiseTester::Value() const {
+  return value_;
+}
+
+void ScriptPromiseTester::Trace(Visitor* visitor) {
+  visitor->Trace(script_state_);
+  visitor->Trace(value_);
+}
+
+}  // namespace blink
diff --git a/third_party/blink/renderer/bindings/core/v8/script_promise_tester.h b/third_party/blink/renderer/bindings/core/v8/script_promise_tester.h
new file mode 100644
index 0000000..63a52f167
--- /dev/null
+++ b/third_party/blink/renderer/bindings/core/v8/script_promise_tester.h
@@ -0,0 +1,61 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_PROMISE_TESTER_H_
+#define THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_PROMISE_TESTER_H_
+
+#include "base/memory/weak_ptr.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_value.h"
+#include "third_party/blink/renderer/platform/wtf/allocator/allocator.h"
+
+namespace blink {
+
+class ScriptState;
+class ScriptPromise;
+class Visitor;
+
+// Utility for writing unit tests involving promises.
+// Typical usage:
+//   ScriptPromiseTester tester(script_state, script_promise);
+//   tester.WaitUntilSettled();  // Runs a nested event loop.
+//   EXPECT_TRUE(tester.IsFulfilled());
+//   EXPECT_TRUE(tester.Value().IsUndefined());
+class ScriptPromiseTester final {
+  DISALLOW_NEW();
+
+ public:
+  ScriptPromiseTester(ScriptState*, ScriptPromise);
+
+  // Run microtasks and tasks until the promise is either fulfilled or rejected.
+  // If the promise never settles this will busy loop until the test times out.
+  void WaitUntilSettled();
+
+  // Did the promise fulfill?
+  bool IsFulfilled() const { return state_ == State::kFulfilled; }
+
+  // Did the promise reject?
+  bool IsRejected() const { return state_ == State::kRejected; }
+
+  // The value the promise fulfilled or rejected with.
+  ScriptValue Value() const;
+
+  void Trace(Visitor*);
+
+ private:
+  class ThenFunction;
+
+  enum class State { kNotSettled, kFulfilled, kRejected };
+
+  Member<ScriptState> script_state_;
+  State state_ = State::kNotSettled;
+  ScriptValue value_;
+
+  base::WeakPtrFactory<ScriptPromiseTester> weak_factory_{this};
+
+  DISALLOW_COPY_AND_ASSIGN(ScriptPromiseTester);
+};
+
+}  // namespace blink
+
+#endif  // THIRD_PARTY_BLINK_RENDERER_BINDINGS_CORE_V8_SCRIPT_PROMISE_TESTER_H_
diff --git a/third_party/blink/renderer/controller/blink_initializer.cc b/third_party/blink/renderer/controller/blink_initializer.cc
index c759738..8c3dcd1 100644
--- a/third_party/blink/renderer/controller/blink_initializer.cc
+++ b/third_party/blink/renderer/controller/blink_initializer.cc
@@ -185,8 +185,9 @@
 
 void BlinkInitializer::InitLocalFrame(LocalFrame& frame) const {
   if (RuntimeEnabledFeatures::DisplayCutoutAPIEnabled()) {
-    frame.GetInterfaceRegistry()->AddAssociatedInterface(WTF::BindRepeating(
-        &DisplayCutoutClientImpl::BindMojoRequest, WrapWeakPersistent(&frame)));
+    frame.GetInterfaceRegistry()->AddAssociatedInterface(
+        WTF::BindRepeating(&DisplayCutoutClientImpl::BindMojoReceiver,
+                           WrapWeakPersistent(&frame)));
   }
   frame.GetInterfaceRegistry()->AddAssociatedInterface(WTF::BindRepeating(
       &DevToolsFrontendImpl::BindMojoRequest, WrapWeakPersistent(&frame)));
diff --git a/third_party/blink/renderer/core/dom/document.cc b/third_party/blink/renderer/core/dom/document.cc
index 3b773a9..bb7716f 100644
--- a/third_party/blink/renderer/core/dom/document.cc
+++ b/third_party/blink/renderer/core/dom/document.cc
@@ -4533,23 +4533,40 @@
 
   // If text fragment identifiers are enabled, we strip the fragment directive
   // from the URL fragment.
-  // E.g. "#id##targetText=a" --> "#id"
+  // E.g. "#id:~:targetText=a" --> "#id"
   if (RuntimeEnabledFeatures::TextFragmentIdentifiersEnabled(this)) {
-    // Add a hash to the beginning of the fragment as it is part of parsing the
-    // ## fragment directive prefix but is not included in FragmentIdentifier().
-    String fragment = "#" + new_url.FragmentIdentifier();
-    wtf_size_t start_pos = fragment.Find(kFragmentDirectivePrefix);
+    String fragment = new_url.FragmentIdentifier();
+    wtf_size_t start_pos = fragment.Find(kFragmentDirectiveNewPrefix);
     if (start_pos != kNotFound) {
-      fragment_directive_ =
-          fragment.Substring(start_pos + kFragmentDirectivePrefixStringLength);
-      if (start_pos == 0) {
-        // Remove the URL fragment if it is entirely a fragment directive.
+      fragment_directive_ = fragment.Substring(
+          start_pos + kFragmentDirectiveNewPrefixStringLength);
+
+      if (start_pos == 0)
         new_url.RemoveFragmentIdentifier();
-      } else {
-        // The stripped fragment starts at position 1 and has length start_pos-1
-        // due to the added hash.
-        String stripped_fragment = fragment.Substring(1, start_pos - 1);
-        new_url.SetFragmentIdentifier(stripped_fragment);
+      else
+        new_url.SetFragmentIdentifier(fragment.Substring(0, start_pos));
+    } else {
+      // TODO(crbug/1007016): Remove support for the old prefix, we currently
+      // fall back to checking ## if we did not find the new delimiter :~:.
+
+      // Add a hash to the beginning of the fragment as it is part of parsing
+      // the ## fragment directive prefix but is not included in
+      // FragmentIdentifier().
+      fragment = "#" + fragment;
+      wtf_size_t start_pos = fragment.Find(kFragmentDirectivePrefix);
+      if (start_pos != kNotFound) {
+        fragment_directive_ = fragment.Substring(
+            start_pos + kFragmentDirectivePrefixStringLength);
+
+        if (start_pos == 0) {
+          // Remove the URL fragment if it is entirely a fragment directive.
+          new_url.RemoveFragmentIdentifier();
+        } else {
+          // The stripped fragment starts at position 1 and has length
+          // start_pos-1 due to the added hash.
+          String stripped_fragment = fragment.Substring(1, start_pos - 1);
+          new_url.SetFragmentIdentifier(stripped_fragment);
+        }
       }
     }
   }
@@ -6119,6 +6136,7 @@
 
 ScriptPromise Document::hasStorageAccess(ScriptState* script_state) const {
   const bool has_access =
+      TopFrameOrigin() &&
       GetSecurityOrigin()->IsSameSchemeHostPort(TopFrameOrigin().get());
   ScriptPromiseResolver* resolver =
       MakeGarbageCollected<ScriptPromiseResolver>(script_state);
diff --git a/third_party/blink/renderer/core/exported/local_frame_client_impl.cc b/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
index 6250653..da7e5fe2 100644
--- a/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
+++ b/third_party/blink/renderer/core/exported/local_frame_client_impl.cc
@@ -723,11 +723,6 @@
     web_frame_->Client()->DidRunContentWithCertificateErrors();
 }
 
-void LocalFrameClientImpl::ReportLegacyTLSVersion(const KURL& url) {
-  if (web_frame_->Client())
-    web_frame_->Client()->ReportLegacyTLSVersion(url);
-}
-
 void LocalFrameClientImpl::DidChangePerformanceTiming() {
   if (web_frame_->Client())
     web_frame_->Client()->DidChangePerformanceTiming();
diff --git a/third_party/blink/renderer/core/exported/local_frame_client_impl.h b/third_party/blink/renderer/core/exported/local_frame_client_impl.h
index f243cc52..6a244821 100644
--- a/third_party/blink/renderer/core/exported/local_frame_client_impl.h
+++ b/third_party/blink/renderer/core/exported/local_frame_client_impl.h
@@ -152,7 +152,6 @@
   void DidDispatchPingLoader(const KURL&) override;
   void DidDisplayContentWithCertificateErrors() override;
   void DidRunContentWithCertificateErrors() override;
-  void ReportLegacyTLSVersion(const KURL&) override;
   void DidChangePerformanceTiming() override;
   void DidChangeCpuTiming(base::TimeDelta) override;
   void DidChangeActiveSchedulerTrackedFeatures(uint64_t features_mask) override;
diff --git a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
index 60f9986..687b9ec 100644
--- a/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_page_popup_impl.cc
@@ -277,6 +277,7 @@
       main_settings.GetAvailablePointerTypes());
   page_->GetSettings().SetPrimaryPointerType(
       main_settings.GetPrimaryPointerType());
+  page_->GetSettings().SetForcedColors(main_settings.GetForcedColors());
 
   ProvideContextFeaturesTo(*page_, std::make_unique<PagePopupFeaturesClient>());
   DEFINE_STATIC_LOCAL(Persistent<LocalFrameClient>, empty_local_frame_client,
diff --git a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
index 0c0f909..3ce7741 100644
--- a/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
+++ b/third_party/blink/renderer/core/exported/web_plugin_container_impl.cc
@@ -150,13 +150,10 @@
   if (!cull_rect.Intersects(FrameRect()))
     return;
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    if (WantsWheelEvents()) {
-      ScrollHitTestDisplayItem::Record(
-          context, *GetLayoutEmbeddedContent(),
-          DisplayItem::kPluginScrollHitTest, nullptr,
-          GetLayoutEmbeddedContent()->FirstFragment().VisualRect());
-    }
+  if (WantsWheelEvents()) {
+    ScrollHitTestDisplayItem::Record(
+        context, *GetLayoutEmbeddedContent(), DisplayItem::kPluginScrollHitTest,
+        nullptr, GetLayoutEmbeddedContent()->FirstFragment().VisualRect());
   }
 
   if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled() && layer_) {
@@ -650,11 +647,9 @@
         LocalFrameView* frame_view = element_->GetDocument().GetFrame()->View();
         scrolling_coordinator->NotifyGeometryChanged(frame_view);
 
-        if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-          // Scroll hit test display items depend on wheel events. The scroll
-          // hit test display items paint in the background phase.
-          GetLayoutEmbeddedContent()->SetBackgroundNeedsFullPaintInvalidation();
-        }
+        // Scroll hit test display items depend on wheel events. The scroll
+        // hit test display items paint in the background phase.
+        GetLayoutEmbeddedContent()->SetBackgroundNeedsFullPaintInvalidation();
       }
     }
   }
diff --git a/third_party/blink/renderer/core/frame/display_cutout_client_impl.cc b/third_party/blink/renderer/core/frame/display_cutout_client_impl.cc
index ddddffc..1ce3fd7 100644
--- a/third_party/blink/renderer/core/frame/display_cutout_client_impl.cc
+++ b/third_party/blink/renderer/core/frame/display_cutout_client_impl.cc
@@ -25,15 +25,16 @@
 
 DisplayCutoutClientImpl::DisplayCutoutClientImpl(
     LocalFrame* frame,
-    mojom::blink::DisplayCutoutClientAssociatedRequest request)
-    : frame_(frame), binding_(this, std::move(request)) {}
+    mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient> receiver)
+    : frame_(frame), receiver_(this, std::move(receiver)) {}
 
-void DisplayCutoutClientImpl::BindMojoRequest(
+void DisplayCutoutClientImpl::BindMojoReceiver(
     LocalFrame* frame,
-    mojom::blink::DisplayCutoutClientAssociatedRequest request) {
+    mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient>
+        receiver) {
   if (!frame)
     return;
-  MakeGarbageCollected<DisplayCutoutClientImpl>(frame, std::move(request));
+  MakeGarbageCollected<DisplayCutoutClientImpl>(frame, std::move(receiver));
 }
 
 void DisplayCutoutClientImpl::SetSafeArea(
diff --git a/third_party/blink/renderer/core/frame/display_cutout_client_impl.h b/third_party/blink/renderer/core/frame/display_cutout_client_impl.h
index 6000271..868a6d2a 100644
--- a/third_party/blink/renderer/core/frame/display_cutout_client_impl.h
+++ b/third_party/blink/renderer/core/frame/display_cutout_client_impl.h
@@ -5,7 +5,8 @@
 #ifndef THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_DISPLAY_CUTOUT_CLIENT_IMPL_H_
 #define THIRD_PARTY_BLINK_RENDERER_CORE_FRAME_DISPLAY_CUTOUT_CLIENT_IMPL_H_
 
-#include "mojo/public/cpp/bindings/associated_binding.h"
+#include "mojo/public/cpp/bindings/associated_receiver.h"
+#include "mojo/public/cpp/bindings/pending_associated_receiver.h"
 #include "third_party/blink/public/mojom/page/display_cutout.mojom-blink.h"
 #include "third_party/blink/renderer/core/core_export.h"
 #include "third_party/blink/renderer/platform/heap/heap.h"
@@ -20,12 +21,13 @@
     : public GarbageCollected<DisplayCutoutClientImpl>,
       public mojom::blink::DisplayCutoutClient {
  public:
-  static void BindMojoRequest(
+  static void BindMojoReceiver(
       LocalFrame*,
-      mojom::blink::DisplayCutoutClientAssociatedRequest);
+      mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient>);
 
-  DisplayCutoutClientImpl(LocalFrame*,
-                          mojom::blink::DisplayCutoutClientAssociatedRequest);
+  DisplayCutoutClientImpl(
+      LocalFrame*,
+      mojo::PendingAssociatedReceiver<mojom::blink::DisplayCutoutClient>);
 
   // Notify the renderer that the safe areas have changed.
   void SetSafeArea(mojom::blink::DisplayCutoutSafeAreaPtr safe_area) override;
@@ -35,7 +37,7 @@
  private:
   Member<LocalFrame> frame_;
 
-  mojo::AssociatedBinding<mojom::blink::DisplayCutoutClient> binding_;
+  mojo::AssociatedReceiver<mojom::blink::DisplayCutoutClient> receiver_;
 
   DISALLOW_COPY_AND_ASSIGN(DisplayCutoutClientImpl);
 };
diff --git a/third_party/blink/renderer/core/frame/local_frame_client.h b/third_party/blink/renderer/core/frame/local_frame_client.h
index 5d06878..46def0c 100644
--- a/third_party/blink/renderer/core/frame/local_frame_client.h
+++ b/third_party/blink/renderer/core/frame/local_frame_client.h
@@ -219,10 +219,6 @@
   // The frame ran content with certificate errors with the given URL.
   virtual void DidRunContentWithCertificateErrors() = 0;
 
-  // The frame loaded a resource with a legacy TLS version that will be removed
-  // in the future. Prints a console message to warn about this.
-  virtual void ReportLegacyTLSVersion(const KURL&) {}
-
   // Will be called when |PerformanceTiming| events are updated
   virtual void DidChangePerformanceTiming() {}
 
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.cc b/third_party/blink/renderer/core/frame/local_frame_view.cc
index 1c10fa8..38e49b0 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.cc
+++ b/third_party/blink/renderer/core/frame/local_frame_view.cc
@@ -3339,23 +3339,6 @@
   tracked_object_paint_invalidations_->push_back(invalidation);
 }
 
-void LocalFrameView::AddResizerArea(LayoutBox& resizer_box) {
-  DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-  if (!resizer_areas_)
-    resizer_areas_ = std::make_unique<ResizerAreaSet>();
-  resizer_areas_->insert(&resizer_box);
-}
-
-void LocalFrameView::RemoveResizerArea(LayoutBox& resizer_box) {
-  DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-  if (!resizer_areas_)
-    return;
-
-  ResizerAreaSet::iterator it = resizer_areas_->find(&resizer_box);
-  if (it != resizer_areas_->end())
-    resizer_areas_->erase(it);
-}
-
 void LocalFrameView::ScheduleAnimation(base::TimeDelta delay) {
   if (auto* client = GetChromeClient())
     client->ScheduleAnimation(this, delay);
diff --git a/third_party/blink/renderer/core/frame/local_frame_view.h b/third_party/blink/renderer/core/frame/local_frame_view.h
index 319a0d6..141efb4 100644
--- a/third_party/blink/renderer/core/frame/local_frame_view.h
+++ b/third_party/blink/renderer/core/frame/local_frame_view.h
@@ -460,20 +460,6 @@
     return animating_scrollable_areas_.Get();
   }
 
-  // With CSS style "resize:" enabled, a little resizer handle will appear at
-  // the bottom right of the object. We keep track of these resizer areas for
-  // checking if touches (implemented using Scroll gesture) are targeting the
-  // resizer.
-  // TODO(pdr): The resizers do not need to be tracked with
-  // PaintNonFastScrollableRegions and can be removed once that ships.
-  typedef HashSet<LayoutBox*> ResizerAreaSet;
-  void AddResizerArea(LayoutBox&);
-  void RemoveResizerArea(LayoutBox&);
-  const ResizerAreaSet* ResizerAreas() const {
-    DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-    return resizer_areas_.get();
-  }
-
   void ScheduleAnimation(base::TimeDelta = base::TimeDelta());
 
   // FIXME: This should probably be renamed as the 'inSubtreeLayout' parameter
@@ -884,7 +870,6 @@
 
   Member<ScrollableAreaSet> scrollable_areas_;
   Member<ScrollableAreaSet> animating_scrollable_areas_;
-  std::unique_ptr<ResizerAreaSet> resizer_areas_;
   std::unique_ptr<ObjectSet> viewport_constrained_objects_;
   unsigned sticky_position_object_count_;
   ObjectSet background_attachment_fixed_objects_;
diff --git a/third_party/blink/renderer/core/frame/root_frame_viewport.cc b/third_party/blink/renderer/core/frame/root_frame_viewport.cc
index 032ce3bf..a29ba69 100644
--- a/third_party/blink/renderer/core/frame/root_frame_viewport.cc
+++ b/third_party/blink/renderer/core/frame/root_frame_viewport.cc
@@ -445,10 +445,6 @@
   return LayoutViewport().ScrollbarsCanBeActive();
 }
 
-IntRect RootFrameViewport::ScrollableAreaBoundingBox() const {
-  return LayoutViewport().ScrollableAreaBoundingBox();
-}
-
 bool RootFrameViewport::UserInputScrollable(
     ScrollbarOrientation orientation) const {
   return VisualViewport().UserInputScrollable(orientation) ||
diff --git a/third_party/blink/renderer/core/frame/root_frame_viewport.h b/third_party/blink/renderer/core/frame/root_frame_viewport.h
index 2a24c76..bd8b1c97 100644
--- a/third_party/blink/renderer/core/frame/root_frame_viewport.h
+++ b/third_party/blink/renderer/core/frame/root_frame_viewport.h
@@ -87,7 +87,6 @@
   ScrollOffset ClampScrollOffset(const ScrollOffset&) const override;
   IntSize ContentsSize() const override;
   bool ScrollbarsCanBeActive() const override;
-  IntRect ScrollableAreaBoundingBox() const override;
   bool UserInputScrollable(ScrollbarOrientation) const override;
   bool ShouldPlaceVerticalScrollbarOnLeft() const override;
   void ScrollControlWasSetNeedsPaintInvalidation() override;
diff --git a/third_party/blink/renderer/core/frame/root_frame_viewport_test.cc b/third_party/blink/renderer/core/frame/root_frame_viewport_test.cc
index b54147f..010c187 100644
--- a/third_party/blink/renderer/core/frame/root_frame_viewport_test.cc
+++ b/third_party/blink/renderer/core/frame/root_frame_viewport_test.cc
@@ -103,7 +103,6 @@
   bool IsScrollCornerVisible() const override { return true; }
   IntRect ScrollCornerRect() const override { return IntRect(); }
   bool ScrollbarsCanBeActive() const override { return true; }
-  IntRect ScrollableAreaBoundingBox() const override { return IntRect(); }
   bool ShouldPlaceVerticalScrollbarOnLeft() const override { return true; }
   void ScrollControlWasSetNeedsPaintInvalidation() override {}
   GraphicsLayer* LayerForContainer() const override { return nullptr; }
diff --git a/third_party/blink/renderer/core/frame/visual_viewport.cc b/third_party/blink/renderer/core/frame/visual_viewport.cc
index b87ef42..0de73119 100644
--- a/third_party/blink/renderer/core/frame/visual_viewport.cc
+++ b/third_party/blink/renderer/core/frame/visual_viewport.cc
@@ -913,19 +913,6 @@
   return browser_controls_adjustment_;
 }
 
-IntRect VisualViewport::ScrollableAreaBoundingBox() const {
-  // This method should return the bounding box in the top-level
-  // LocalFrameView's coordinate space; however, VisualViewport technically
-  // isn't a child of any Frames.  Nonetheless, the VisualViewport always
-  // occupies the entire main frame so just return that.
-  LocalFrame* frame = MainFrame();
-
-  if (!frame || !frame->View())
-    return IntRect();
-
-  return frame->View()->FrameRect();
-}
-
 bool VisualViewport::UserInputScrollable(ScrollbarOrientation) const {
   // If there is a non-root fullscreen element, prevent the viewport from
   // scrolling.
diff --git a/third_party/blink/renderer/core/frame/visual_viewport.h b/third_party/blink/renderer/core/frame/visual_viewport.h
index 840b0c2..67e8f8d 100644
--- a/third_party/blink/renderer/core/frame/visual_viewport.h
+++ b/third_party/blink/renderer/core/frame/visual_viewport.h
@@ -215,7 +215,6 @@
   // correct cc Layer sizing.
   IntSize ContentsSize() const override;
   bool ScrollbarsCanBeActive() const override { return false; }
-  IntRect ScrollableAreaBoundingBox() const override;
   bool UserInputScrollable(ScrollbarOrientation) const override;
   bool ShouldPlaceVerticalScrollbarOnLeft() const override { return false; }
   CompositorElementId GetCompositorElementId() const override;
diff --git a/third_party/blink/renderer/core/html/forms/date_time_field_elements.cc b/third_party/blink/renderer/core/html/forms/date_time_field_elements.cc
index ba71242..167c873b 100644
--- a/third_party/blink/renderer/core/html/forms/date_time_field_elements.cc
+++ b/third_party/blink/renderer/core/html/forms/date_time_field_elements.cc
@@ -46,7 +46,7 @@
     : DateTimeSymbolicFieldElement(document, field_owner, ampm_labels, 0, 1) {
   DEFINE_STATIC_LOCAL(AtomicString, ampm_pseudo_id,
                       ("-webkit-datetime-edit-ampm-field"));
-  Initialize(ampm_pseudo_id, QueryString(WebLocalizedString::kAXAMPMFieldText));
+  Initialize(ampm_pseudo_id, QueryString(IDS_AX_AM_PM_FIELD_TEXT));
 }
 
 void DateTimeAMPMFieldElement::PopulateDateTimeFieldsState(
diff --git a/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js b/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js
index 60d1a1c..9e6ac2b 100644
--- a/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js
+++ b/third_party/blink/renderer/core/html/forms/resources/calendarPicker.js
@@ -2147,7 +2147,7 @@
 YearListCell.ButtonRows = 3;
 YearListCell.ButtonColumns = 4;
 YearListCell._SelectedHeight = hasInaccuratePointingDevice() ? 127 : 121;
-YearListCell._SelectedHeightRefresh = 121;
+YearListCell._SelectedHeightRefresh = 128;
 YearListCell.GetSelectedHeight = function() {
   if (global.params.isFormControlsRefreshEnabled) {
     return YearListCell._SelectedHeightRefresh;
diff --git a/third_party/blink/renderer/core/html/forms/resources/calendar_picker_refresh.css b/third_party/blink/renderer/core/html/forms/resources/calendar_picker_refresh.css
index a77ba6c4..a47d3db7 100644
--- a/third_party/blink/renderer/core/html/forms/resources/calendar_picker_refresh.css
+++ b/third_party/blink/renderer/core/html/forms/resources/calendar_picker_refresh.css
@@ -29,7 +29,7 @@
 .calendar-navigation-button {
   -webkit-align-self: center;
   background-color: #ffffff;
-  border: 0;
+  border: 1px solid transparent;
   color: #101010;
   padding: 0;
   text-align: center;
@@ -49,7 +49,7 @@
 }
 
 .calendar-navigation-button:disabled path {
-  fill: rgba(16, 16, 16, 0.3);;
+  fill: rgba(16, 16, 16, 0.3);
 }
 
 .calendar-title {
@@ -83,9 +83,13 @@
   margin-inline-end: 1px;
 }
 
+.week-number-cell {
+  border: 1px solid transparent !important;
+}
+
 .day-cell {
   background-color: #ffffff;
-  border: 0 !important;
+  border: 1px solid transparent !important;
   border-radius: 2px;
   color: #767676;
   padding: 1px;
@@ -132,7 +136,7 @@
 }
 
 .today-button-refresh {
-  border: 0;
+  border: 1px solid transparent;
   bottom: 12px;
   color: #0078D4;
   font-size: 12px;
@@ -171,9 +175,127 @@
 .year-list-cell .label {
   background-color: #EFEFEF;
   border-color: #CECECE;
+  margin-bottom: 1px;
 }
 
 .month-button {
+  border: 1px solid transparent !important;
   border-radius: 2px;
   color: #101010;
 }
+
+/* These forced colors mode styles override the default styling for elements
+ * when forced colors mode is enabled.
+ */
+@media (forced-colors: active) {
+  .calendar-navigation-button {
+    background-color: Window;
+    color: WindowText;
+    forced-color-adjust: none;
+  }
+
+  .calendar-navigation-button:hover {
+    background-color: Window;
+    border-color: Highlight;
+  }
+
+  .calendar-navigation-button:disabled {
+    background-color: Window;
+    border-color: transparent;
+  }
+
+  .calendar-navigation-button path {
+    fill: WindowText;
+  }
+
+  .calendar-navigation-button:disabled path {
+    fill: GrayText;
+  }
+
+  .month-popup-button polygon {
+    fill: WindowText !important;
+  }
+
+  .month-popup-button:disabled polygon {
+    fill: GrayText !important;
+  }
+
+  .week-number-cell  {
+    background-color: Window;
+    color: WindowText;
+    forced-color-adjust: none;
+  }
+
+  .day-cell {
+    background-color: Window;
+    color: GrayText;
+    forced-color-adjust: none;
+  }
+
+  .month-button {
+    background-color: Window;
+    color: WindowText;
+    forced-color-adjust: none;
+  }
+
+  .day-cell.current-month {
+    color: WindowText;
+  }
+
+  .day-cell.highlighted,
+  .month-button.highlighted,
+  .week-number-cell.highlighted {
+    background-color: Window;
+    border-color: Highlight !important;
+  }
+
+  .day-cell.selected,
+  .month-button.selected,
+  .week-number-cell.selected {
+    background-color: Highlight;
+  }
+
+  .day-cell.highlighted.today,
+  .day-cell.today,
+  .month-button.today {
+    background-color: Highlight;
+    border: 2px solid Window !important;
+  }
+
+  .day-cell.selected.today,
+  .month-button.selected.today {
+    border: 1px solid Window !important;
+  }
+
+  .day-cell.disabled,
+  .day-cell.disabled.today,
+  .month-button[aria-disabled="true"],
+  .week-number-cell.disabled {
+    background-color: Window;
+    border: 0 !important;
+    color: GrayText;
+  }
+
+  .today-button-refresh {
+    background-color: Window;
+    color: LinkText;
+    forced-color-adjust: none;
+  }
+
+  .today-button-refresh:hover {
+    background-color: Window;
+    border-color: Highlight;
+  }
+
+  .today-button-refresh:disabled {
+    background-color: Window;
+    border-color: transparent;
+    color: GrayText;
+    forced-color-adjust: none;
+  }
+
+  .scrubby-scroll-thumb {
+    background-color: WindowText;
+    forced-color-adjust: none;
+  }
+}
diff --git a/third_party/blink/renderer/core/html/forms/resources/month_picker.js b/third_party/blink/renderer/core/html/forms/resources/month_picker.js
index 4d68d1a..bd001c8 100644
--- a/third_party/blink/renderer/core/html/forms/resources/month_picker.js
+++ b/third_party/blink/renderer/core/html/forms/resources/month_picker.js
@@ -10,6 +10,9 @@
 function initializeMonthPicker(config) {
   global.picker = new MonthPicker(config);
   main.append(global.picker);
+  main.style.border = '1px solid transparent';
+  main.style.height = (MonthPicker.Height - 2) + 'px';
+  main.style.width = (MonthPicker.Width - 2) + 'px';
   resizeWindow(MonthPicker.Width, MonthPicker.Height);
 }
 
@@ -109,10 +112,10 @@
     this.yearListView_.element.focus();
   }
 }
-MonthPicker.Width = 230;
+MonthPicker.Width = 232;
 MonthPicker.YearWidth = 194;
-MonthPicker.YearHeight = 120;
+MonthPicker.YearHeight = 128;
 MonthPicker.YearPadding = 12;
-MonthPicker.Height = 172;
+MonthPicker.Height = 182;
 MonthPicker.ClassNameTodayButton = 'today-button-refresh';
 window.customElements.define('month-picker', MonthPicker);
\ No newline at end of file
diff --git a/third_party/blink/renderer/core/html/resources/forced_colors.css b/third_party/blink/renderer/core/html/resources/forced_colors.css
index e3ee450a3..d60389d 100644
--- a/third_party/blink/renderer/core/html/resources/forced_colors.css
+++ b/third_party/blink/renderer/core/html/resources/forced_colors.css
@@ -73,6 +73,20 @@
     color: ButtonText;
   }
 
+  input::-webkit-datetime-edit-ampm-field:focus,
+  input::-webkit-datetime-edit-day-field:focus,
+  input::-webkit-datetime-edit-hour-field:focus,
+  input::-webkit-datetime-edit-millisecond-field:focus,
+  input::-webkit-datetime-edit-minute-field:focus,
+  input::-webkit-datetime-edit-month-field:focus,
+  input::-webkit-datetime-edit-second-field:focus,
+  input::-webkit-datetime-edit-week-field:focus,
+  input::-webkit-datetime-edit-year-field:focus {
+      background-color: highlight;
+      color: highlighttext;
+      outline: none;
+  }
+
   input[type="color"]:disabled {
     border-color: GrayText;
   }
diff --git a/third_party/blink/renderer/core/html/resources/images/calendar_icon.svg b/third_party/blink/renderer/core/html/resources/images/calendar_icon.svg
index f66e72eb..c625f9d 100644
--- a/third_party/blink/renderer/core/html/resources/images/calendar_icon.svg
+++ b/third_party/blink/renderer/core/html/resources/images/calendar_icon.svg
@@ -1,3 +1,3 @@
 <svg width="16" height="15" viewBox="0 0 16 15" fill="none" xmlns="http://www.w3.org/2000/svg">
-<path d="M6 6H7V7H6V6ZM9 12H10V13H9V12ZM12 6H13V7H12V6ZM9 6H10V7H9V6ZM6 8H7V9H6V8ZM3 8H4V9H3V8ZM12 8H13V9H12V8ZM9 8H10V9H9V8ZM6 10H7V11H6V10ZM3 10H4V11H3V10ZM12 10H13V11H12V10ZM9 10H10V11H9V10ZM6 12H7V13H6V12ZM3 12H4V13H3V12ZM16 1V15H0V1H3V0H4V1H12V0H13V1H16ZM1 2V4H15V2H13V3H12V2H4V3H3V2H1ZM15 14V5H1V14H15Z" fill="#101010"/>
+<path d="M6 6H7V7H6V6ZM9 12H10V13H9V12ZM12 6H13V7H12V6ZM9 6H10V7H9V6ZM6 8H7V9H6V8ZM3 8H4V9H3V8ZM12 8H13V9H12V8ZM9 8H10V9H9V8ZM6 10H7V11H6V10ZM3 10H4V11H3V10ZM12 10H13V11H12V10ZM9 10H10V11H9V10ZM6 12H7V13H6V12ZM3 12H4V13H3V12ZM16 1V15H0V1H3V0H4V1H12V0H13V1H16ZM1 2V4H15V2H13V3H12V2H4V3H3V2H1ZM15 14V5H1V14H15Z" fill="WindowText"/>
 </svg>
diff --git a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
index a3facc4e..e8ac412 100644
--- a/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
+++ b/third_party/blink/renderer/core/inspector/inspector_emulation_agent.cc
@@ -463,8 +463,11 @@
   timezone_override_.reset();
   if (!timezone_id.IsEmpty()) {
     timezone_override_ = TimeZoneController::SetTimeZoneOverride(timezone_id);
-    if (!timezone_override_)
-      return Response::Error("Timezone override is already in effect");
+    if (!timezone_override_) {
+      return TimeZoneController::HasTimeZoneOverride()
+                 ? Response::Error("Timezone override is already in effect")
+                 : Response::InvalidParams("Invalid timezone id");
+    }
   }
 
   timezone_id_override_.Set(timezone_id);
diff --git a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
index 123740b..2099705 100644
--- a/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
+++ b/third_party/blink/renderer/core/layout/flexible_box_algorithm.h
@@ -65,6 +65,48 @@
 
 typedef Vector<FlexItem, 8> FlexItemVector;
 
+class AutoClearOverrideLogicalHeight {
+ public:
+  explicit AutoClearOverrideLogicalHeight(LayoutBox* box)
+      : box_(box), old_override_height_(-1) {
+    if (box_ && box_->HasOverrideLogicalHeight()) {
+      old_override_height_ = box_->OverrideLogicalHeight();
+      box_->ClearOverrideLogicalHeight();
+    }
+  }
+  ~AutoClearOverrideLogicalHeight() {
+    if (old_override_height_ != LayoutUnit(-1)) {
+      DCHECK(box_);
+      box_->SetOverrideLogicalHeight(old_override_height_);
+    }
+  }
+
+ private:
+  LayoutBox* box_;
+  LayoutUnit old_override_height_;
+};
+
+class AutoClearOverrideLogicalWidth {
+ public:
+  explicit AutoClearOverrideLogicalWidth(LayoutBox* box)
+      : box_(box), old_override_width_(-1) {
+    if (box_ && box_->HasOverrideLogicalWidth()) {
+      old_override_width_ = box_->OverrideLogicalWidth();
+      box_->ClearOverrideLogicalWidth();
+    }
+  }
+  ~AutoClearOverrideLogicalWidth() {
+    if (old_override_width_ != LayoutUnit(-1)) {
+      DCHECK(box_);
+      box_->SetOverrideLogicalWidth(old_override_width_);
+    }
+  }
+
+ private:
+  LayoutBox* box_;
+  LayoutUnit old_override_width_;
+};
+
 class FlexItem {
   DISALLOW_NEW();
 
diff --git a/third_party/blink/renderer/core/layout/layout_flexible_box.cc b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
index ed5939cf..aa6d4647 100644
--- a/third_party/blink/renderer/core/layout/layout_flexible_box.cc
+++ b/third_party/blink/renderer/core/layout/layout_flexible_box.cc
@@ -498,11 +498,7 @@
   // This should only be called if the logical height is the cross size
   DCHECK(MainAxisIsInlineAxis(child));
   if (NeedToStretchChildLogicalHeight(child)) {
-    LayoutUnit old_override_height = LayoutUnit(-1);
-    if (child.HasOverrideLogicalHeight()) {
-      old_override_height = child.OverrideLogicalHeight();
-      const_cast<LayoutBox&>(child).ClearOverrideLogicalHeight();
-    }
+    AutoClearOverrideLogicalHeight clear(const_cast<LayoutBox*>(&child));
 
     LayoutUnit child_intrinsic_content_logical_height;
     if (child.ShouldApplySizeContainment()) {
@@ -522,10 +518,6 @@
     LogicalExtentComputedValues values;
     child.ComputeLogicalHeight(child_intrinsic_logical_height, LayoutUnit(),
                                values);
-    if (old_override_height != LayoutUnit(-1)) {
-      const_cast<LayoutBox&>(child).SetOverrideLogicalHeight(
-          old_override_height);
-    }
     return values.extent_;
   }
   return child.LogicalHeight();
@@ -542,17 +534,10 @@
   // However, if our cross axis length is definite we don't need to recompute
   // and can just return the already-set logical width.
   if (!CrossAxisLengthIsDefinite(child, child.StyleRef().LogicalWidth())) {
-    LayoutUnit old_override_width = LayoutUnit(-1);
-    if (child.HasOverrideLogicalWidth()) {
-      old_override_width = child.OverrideLogicalWidth();
-      const_cast<LayoutBox&>(child).ClearOverrideLogicalWidth();
-    }
+    AutoClearOverrideLogicalWidth clear(const_cast<LayoutBox*>(&child));
 
     LogicalExtentComputedValues values;
     child.ComputeLogicalWidth(values);
-
-    if (old_override_width != LayoutUnit(-1))
-      const_cast<LayoutBox&>(child).SetOverrideLogicalWidth(old_override_width);
     return values.extent_;
   }
 
diff --git a/third_party/blink/renderer/core/loader/document_loader.cc b/third_party/blink/renderer/core/loader/document_loader.cc
index 940cc33..46da80b 100644
--- a/third_party/blink/renderer/core/loader/document_loader.cc
+++ b/third_party/blink/renderer/core/loader/document_loader.cc
@@ -34,8 +34,6 @@
 #include "base/auto_reset.h"
 #include "base/metrics/histogram_macros.h"
 #include "base/time/default_tick_clock.h"
-#include "services/metrics/public/cpp/ukm_builders.h"
-#include "services/metrics/public/cpp/ukm_recorder.h"
 #include "services/network/public/cpp/features.h"
 #include "third_party/blink/public/common/origin_policy/origin_policy.h"
 #include "third_party/blink/public/mojom/commit_result/commit_result.mojom-blink.h"
@@ -1459,26 +1457,9 @@
   // Report legacy TLS versions after Page::DidCommitLoad, because the latter
   // clears the console.
   if (response_.IsLegacyTLSVersion()) {
-    CountUse(frame_->Tree().Parent()
-                 ? WebFeature::kLegacyTLSVersionInSubframeMainResource
-                 : WebFeature::kLegacyTLSVersionInMainFrameResource);
-    GetLocalFrameClient().ReportLegacyTLSVersion(response_.CurrentRequestUrl());
-    if (!frame_->Tree().Parent()) {
-      ukm::builders::Net_LegacyTLSVersion(document->UkmSourceID())
-          .SetIsMainFrame(true)
-          .SetIsSubresource(false)
-          .SetIsAdResource(frame_->IsAdSubframe() || frame_->IsAdRoot())
-          .Record(document->UkmRecorder());
-    } else {
-      // For non-main-frame loads, we have to use the main frame's document for
-      // the UKM recorder and source ID.
-      auto& root = frame_->LocalFrameRoot();
-      ukm::builders::Net_LegacyTLSVersion(root.GetDocument()->UkmSourceID())
-          .SetIsMainFrame(false)
-          .SetIsSubresource(false)
-          .SetIsAdResource(frame_->IsAdSubframe())
-          .Record(root.GetDocument()->UkmRecorder());
-    }
+    GetFrameLoader().ReportLegacyTLSVersion(
+        response_.CurrentRequestUrl(), false /* is_subresource */,
+        frame_->IsAdSubframe() || frame_->IsAdRoot());
   }
 }
 
diff --git a/third_party/blink/renderer/core/loader/frame_loader.cc b/third_party/blink/renderer/core/loader/frame_loader.cc
index c4893182..bdd2600 100644
--- a/third_party/blink/renderer/core/loader/frame_loader.cc
+++ b/third_party/blink/renderer/core/loader/frame_loader.cc
@@ -41,7 +41,10 @@
 
 #include "base/auto_reset.h"
 #include "base/unguessable_token.h"
+#include "build/build_config.h"
 #include "mojo/public/cpp/bindings/pending_remote.h"
+#include "services/metrics/public/cpp/ukm_builders.h"
+#include "services/metrics/public/cpp/ukm_recorder.h"
 #include "third_party/blink/public/common/features.h"
 #include "third_party/blink/public/mojom/fetch/fetch_api_request.mojom-blink.h"
 #include "third_party/blink/public/mojom/frame/navigation_initiator.mojom-blink.h"
@@ -62,6 +65,7 @@
 #include "third_party/blink/renderer/core/events/page_transition_event.h"
 #include "third_party/blink/renderer/core/frame/csp/content_security_policy.h"
 #include "third_party/blink/renderer/core/frame/csp/navigation_initiator_impl.h"
+#include "third_party/blink/renderer/core/frame/frame_console.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/local_frame_client.h"
@@ -109,6 +113,7 @@
 #include "third_party/blink/renderer/platform/network/mime/mime_type_registry.h"
 #include "third_party/blink/renderer/platform/network/network_utils.h"
 #include "third_party/blink/renderer/platform/scheduler/public/frame_scheduler.h"
+#include "third_party/blink/renderer/platform/web_test_support.h"
 #include "third_party/blink/renderer/platform/weborigin/security_origin.h"
 #include "third_party/blink/renderer/platform/weborigin/security_policy.h"
 #include "third_party/blink/renderer/platform/wtf/assertions.h"
@@ -957,6 +962,8 @@
 
   CommitDocumentLoader(provisional_document_loader_.Release(), unload_timing);
 
+  tls_version_warning_origins_.clear();
+
   // Load the document if needed.
   document_loader_->StartLoadingResponse();
 
@@ -1554,6 +1561,76 @@
                                               document_for_logging, frame_type);
 }
 
+void FrameLoader::ReportLegacyTLSVersion(const KURL& url,
+                                         bool is_subresource,
+                                         bool is_ad_resource) {
+  document_loader_->GetUseCounterHelper().Count(
+      is_subresource
+          ? WebFeature::kLegacyTLSVersionInSubresource
+          : (frame_->Tree().Parent()
+                 ? WebFeature::kLegacyTLSVersionInSubframeMainResource
+                 : WebFeature::kLegacyTLSVersionInMainFrameResource),
+      frame_.Get());
+
+  // For non-main-frame loads, we have to use the main frame's document for
+  // the UKM recorder and source ID.
+  auto& root = frame_->LocalFrameRoot();
+  ukm::builders::Net_LegacyTLSVersion(root.GetDocument()->UkmSourceID())
+      .SetIsMainFrame(frame_->IsMainFrame())
+      .SetIsSubresource(is_subresource)
+      .SetIsAdResource(is_ad_resource)
+      .Record(root.GetDocument()->UkmRecorder());
+
+  // Web tests use an outdated server on macOS. See https://crbug.com/936515.
+#if defined(OS_MACOSX)
+  if (WebTestSupport::IsRunningWebTest())
+    return;
+#endif
+
+  String origin = SecurityOrigin::Create(url)->ToString();
+  // To prevent log spam, only log the message once per origin.
+  if (tls_version_warning_origins_.Contains(origin))
+    return;
+
+  // After |kMaxSecurityWarningMessages| warnings, stop printing messages to the
+  // console. At exactly |kMaxSecurityWarningMessages| warnings, print a message
+  // that additional resources on the page use legacy certificates without
+  // specifying which exact resources. Before |kMaxSecurityWarningMessages|
+  // messages, print the exact resource URL in the message to help the developer
+  // pinpoint the problematic resources.
+  const size_t kMaxSecurityWarningMessages = 10;
+  size_t num_warnings = tls_version_warning_origins_.size();
+  if (num_warnings > kMaxSecurityWarningMessages)
+    return;
+
+  String console_message;
+  if (num_warnings == kMaxSecurityWarningMessages) {
+    console_message =
+        "Additional resources on this page were loaded with TLS 1.0 or TLS "
+        "1.1, which are deprecated and will be disabled in the future. Once "
+        "disabled, users will be prevented from loading these resources. "
+        "Servers should enable TLS 1.2 or later. See "
+        "https://www.chromestatus.com/feature/5654791610957824 for more "
+        "information.";
+  } else {
+    console_message =
+        "The connection used to load resources from " + origin +
+        " used TLS 1.0 or TLS "
+        "1.1, which are deprecated and will be disabled in the future. Once "
+        "disabled, users will be prevented from loading these resources. The "
+        "server should enable TLS 1.2 or later. See "
+        "https://www.chromestatus.com/feature/5654791610957824 for more "
+        "information.";
+  }
+  tls_version_warning_origins_.insert(origin);
+  // To avoid spamming the console, use verbose message level for subframe
+  // resources, and only use the warning level for main-frame resources.
+  frame_->Console().AddMessage(ConsoleMessage::Create(
+      mojom::ConsoleMessageSource::kOther,
+      frame_->IsMainFrame() ? mojom::ConsoleMessageLevel::kWarning
+                            : mojom::ConsoleMessageLevel::kVerbose,
+      console_message));
+}
 
 void FrameLoader::RecordLatestRequiredCSP() {
   required_csp_ =
diff --git a/third_party/blink/renderer/core/loader/frame_loader.h b/third_party/blink/renderer/core/loader/frame_loader.h
index 3324536..035c5e7f 100644
--- a/third_party/blink/renderer/core/loader/frame_loader.h
+++ b/third_party/blink/renderer/core/loader/frame_loader.h
@@ -160,6 +160,9 @@
       const FetchClientSettingsObject* fetch_client_settings_object,
       Document* document_for_logging,
       network::mojom::RequestContextFrameType) const;
+  void ReportLegacyTLSVersion(const KURL& url,
+                              bool is_subresource,
+                              bool is_ad_resource);
 
   Frame* Opener();
   void SetOpener(LocalFrame*);
@@ -305,6 +308,10 @@
 
   Member<ContentSecurityPolicy> last_origin_document_csp_;
 
+  // The origins for which a legacy TLS version warning has been printed. The
+  // size of this set is capped, after which no more warnings are printed.
+  HashSet<String> tls_version_warning_origins_;
+
   DISALLOW_COPY_AND_ASSIGN(FrameLoader);
 };
 
diff --git a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
index c05d507..24a82f4 100644
--- a/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
+++ b/third_party/blink/renderer/core/loader/resource_load_observer_for_frame.cc
@@ -4,8 +4,6 @@
 
 #include "third_party/blink/renderer/core/loader/resource_load_observer_for_frame.h"
 
-#include "services/metrics/public/cpp/ukm_builders.h"
-#include "services/metrics/public/cpp/ukm_recorder.h"
 #include "third_party/blink/renderer/core/core_probes_inl.h"
 #include "third_party/blink/renderer/core/frame/frame_console.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
@@ -179,16 +177,9 @@
   }
 
   if (response.IsLegacyTLSVersion()) {
-    CountUsage(WebFeature::kLegacyTLSVersionInSubresource);
-    frame_client->ReportLegacyTLSVersion(response.CurrentRequestUrl());
-    // For non-main-frame loads, we have to use the main frame's document for
-    // the UKM recorder and source ID.
-    auto& root = frame.LocalFrameRoot();
-    ukm::builders::Net_LegacyTLSVersion(root.GetDocument()->UkmSourceID())
-        .SetIsMainFrame(frame.IsMainFrame())
-        .SetIsSubresource(true)
-        .SetIsAdResource(resource->GetResourceRequest().IsAdResource())
-        .Record(root.GetDocument()->UkmRecorder());
+    frame.Loader().ReportLegacyTLSVersion(
+        response.CurrentRequestUrl(), true /* is_subresource */,
+        resource->GetResourceRequest().IsAdResource());
   }
 
   frame.Loader().Progress().IncrementProgress(identifier, response);
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
index 9ebf3ff..54eb84e 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.cc
@@ -37,9 +37,6 @@
 #include "cc/layers/scrollbar_layer_interface.h"
 #include "cc/layers/solid_color_scrollbar_layer.h"
 #include "third_party/blink/public/platform/platform.h"
-#include "third_party/blink/public/web/web_element.h"
-#include "third_party/blink/renderer/core/dom/document.h"
-#include "third_party/blink/renderer/core/exported/web_plugin_container_impl.h"
 #include "third_party/blink/renderer/core/frame/local_dom_window.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
 #include "third_party/blink/renderer/core/frame/local_frame_ukm_aggregator.h"
@@ -48,19 +45,15 @@
 #include "third_party/blink/renderer/core/frame/settings.h"
 #include "third_party/blink/renderer/core/frame/visual_viewport.h"
 #include "third_party/blink/renderer/core/html/html_frame_owner_element.h"
-#include "third_party/blink/renderer/core/layout/geometry/transform_state.h"
 #include "third_party/blink/renderer/core/layout/layout_view.h"
 #include "third_party/blink/renderer/core/page/chrome_client.h"
 #include "third_party/blink/renderer/core/page/page.h"
 #include "third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_context.h"
-#include "third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.h"
 #include "third_party/blink/renderer/core/paint/paint_layer.h"
 #include "third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h"
 #include "third_party/blink/renderer/core/scroll/scroll_animator_base.h"
 #include "third_party/blink/renderer/core/scroll/scrollbar_layer_delegate.h"
 #include "third_party/blink/renderer/core/scroll/scrollbar_theme.h"
-#include "third_party/blink/renderer/platform/animation/compositor_animation_timeline.h"
-#include "third_party/blink/renderer/platform/geometry/region.h"
 #include "third_party/blink/renderer/platform/graphics/compositing/paint_artifact_compositor.h"
 #include "third_party/blink/renderer/platform/graphics/graphics_layer.h"
 #include "third_party/blink/renderer/platform/instrumentation/histogram.h"
@@ -89,14 +82,6 @@
   visitor->Trace(vertical_scrollbars_);
 }
 
-void ScrollingCoordinator::SetShouldHandleScrollGestureOnMainThreadRegion(
-    const Region& region,
-    GraphicsLayer* layer) {
-  DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-  if (cc::Layer* cc_layer = GraphicsLayerToCcLayer(layer))
-    cc_layer->SetNonFastScrollableRegion(RegionToCCRegion(region));
-}
-
 void ScrollingCoordinator::NotifyGeometryChanged(LocalFrameView* frame_view) {
   frame_view->GetScrollingContext()->SetScrollGestureRegionIsDirty(true);
   frame_view->GetScrollingContext()->SetTouchEventTargetRectsAreDirty(true);
@@ -201,7 +186,6 @@
 
 // Set the non-fast scrollable regions on |layer|'s cc layer.
 static void UpdateLayerNonFastScrollableRegions(GraphicsLayer& layer) {
-  DCHECK(RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
   // CompositeAfterPaint does this update in PaintArtifactCompositor.
   DCHECK(!RuntimeEnabledFeatures::CompositeAfterPaintEnabled());
 
@@ -230,27 +214,9 @@
 //    div/textarea/iframe when CSS property "resize" is enabled.
 // 3. Plugin areas.
 void ScrollingCoordinator::UpdateNonFastScrollableRegions(LocalFrame* frame) {
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    auto* view_layer = frame->View()->GetLayoutView()->Layer();
-    if (auto* root = view_layer->Compositor()->PaintRootGraphicsLayer())
-      ForAllPaintingGraphicsLayers(*root, UpdateLayerNonFastScrollableRegions);
-  } else {
-    Region main_thread_scrolling_region;
-    Region main_thread_fixed_region;
-    ComputeShouldHandleScrollGestureOnMainThreadRegion(
-        frame, &main_thread_scrolling_region, &main_thread_fixed_region);
-
-    SetShouldHandleScrollGestureOnMainThreadRegion(
-        main_thread_scrolling_region,
-        frame->View()->GetScrollableArea()->LayerForScrolling());
-
-    // Fixed regions will be stored on the visual viewport's scroll layer.
-    // This is because a region for an area that's fixed to the layout
-    // viewport won't move when the layout viewport scrolls.
-    SetShouldHandleScrollGestureOnMainThreadRegion(
-        main_thread_fixed_region,
-        page_->GetVisualViewport().LayerForScrolling());
-  }
+  auto* view_layer = frame->View()->GetLayoutView()->Layer();
+  if (auto* root = view_layer->Compositor()->PaintRootGraphicsLayer())
+    ForAllPaintingGraphicsLayers(*root, UpdateLayerNonFastScrollableRegions);
 }
 
 // Set the touch action rects on the cc layer from the touch action data stored
@@ -652,133 +618,6 @@
   return layout_view->UsesCompositing();
 }
 
-namespace {
-
-bool ScrollsWithRootFrame(LayoutObject* object) {
-  DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-
-  DCHECK(object);
-  DCHECK(object->GetFrame());
-
-  // TODO(bokan): Speculative fix for https://crbug.com/964293.
-  if (!object || !object->GetNode())
-    return true;
-
-  const LocalFrame& frame = *object->GetFrame();
-
-  // If we're in an iframe document, we need to determine if the containing
-  // <iframe> element scrolls with the root frame.
-  if (&frame != &frame.LocalFrameRoot()) {
-    DCHECK(frame.GetDocument());
-    DCHECK(frame.GetDocument()->LocalOwner());
-    DCHECK(frame.GetDocument()->LocalOwner()->GetLayoutObject());
-    return ScrollsWithRootFrame(
-        frame.GetDocument()->LocalOwner()->GetLayoutObject());
-  }
-
-  DCHECK(object->EnclosingLayer());
-  if (object->EnclosingLayer()->AncestorScrollingLayer() ==
-      frame.ContentLayoutObject()->Layer())
-    return true;
-
-  // TODO(bokan): Returning false unconditionally here is actually wrong but we
-  // do this because NonFastScrollableRegions are stored only on the layout and
-  // visual viewport's scroll layers. This can lead to issues when subscroller
-  // layers are scrolled (e.g. https://crbug.com/817600). These should really
-  // be stored on the nearest ancestor ScrollNode, rather than the root
-  // viewport.  Should be addressed by https://crbug.com/864567.
-  return false;
-}
-
-}  // namespace
-
-void ScrollingCoordinator::ComputeShouldHandleScrollGestureOnMainThreadRegion(
-    const LocalFrame* frame,
-    Region* scrolling_region,
-    Region* fixed_region) const {
-  DCHECK(!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-
-  LocalFrameView* frame_view = frame->View();
-  DCHECK(scrolling_region);
-  DCHECK(fixed_region);
-
-  if (!frame_view || frame_view->ShouldThrottleRendering() ||
-      !frame_view->IsVisible()) {
-    return;
-  }
-
-  LocalFrameView* local_root_view = frame->LocalFrameRoot().View();
-
-  if (const LocalFrameView::ScrollableAreaSet* scrollable_areas =
-          frame_view->ScrollableAreas()) {
-    for (const ScrollableArea* scrollable_area : *scrollable_areas) {
-      // Composited scrollable areas can be scrolled off the main thread.
-      if (scrollable_area->UsesCompositedScrolling())
-        continue;
-
-      if (ScrollsWithRootFrame(scrollable_area->GetLayoutBox())) {
-        scrolling_region->Unite(scrollable_area->ScrollableAreaBoundingBox());
-      } else {
-        fixed_region->Unite(local_root_view->DocumentToFrame(
-            scrollable_area->ScrollableAreaBoundingBox()));
-      }
-    }
-  }
-
-  // We use GestureScrollBegin/Update/End for moving the resizer handle. So we
-  // mark these small resizer areas as non-fast-scrollable to allow the scroll
-  // gestures to be passed to main thread if they are targeting the resizer
-  // area. (Resizing is done in EventHandler.cpp on main thread).
-  if (const LocalFrameView::ResizerAreaSet* resizer_areas =
-          frame_view->ResizerAreas()) {
-    for (const LayoutBox* box : *resizer_areas) {
-      PaintLayerScrollableArea* scrollable_area =
-          box->Layer()->GetScrollableArea();
-
-      IntRect bounds_in_frame = box->AbsoluteBoundingBoxRect();
-      IntRect corner_in_frame =
-          scrollable_area->ResizerCornerRect(bounds_in_frame, kResizerForTouch);
-
-      IntRect corner_in_root_frame =
-          EnclosingIntRect(scrollable_area->GetLayoutBox()->LocalToAbsoluteRect(
-              PhysicalRect(corner_in_frame), kTraverseDocumentBoundaries));
-
-      if (ScrollsWithRootFrame(scrollable_area->GetLayoutBox())) {
-        scrolling_region->Unite(
-            local_root_view->FrameToDocument(corner_in_root_frame));
-      } else {
-        fixed_region->Unite(corner_in_root_frame);
-      }
-    }
-  }
-
-  for (const auto& plugin : frame_view->Plugins()) {
-    Element* element = plugin->GetElement();
-    // Plugins can run script during layout so ensure the plugin wasn't removed
-    // since being added to the Plugins set.
-    if (!element->GetLayoutObject())
-      continue;
-
-    if (plugin->WantsWheelEvents()) {
-      IntRect box = frame_view->ConvertToRootFrame(plugin->FrameRect());
-      if (ScrollsWithRootFrame(element->GetLayoutObject())) {
-        scrolling_region->Unite(local_root_view->FrameToDocument(box));
-      } else {
-        fixed_region->Unite(box);
-      }
-    }
-  }
-
-  const FrameTree& tree = frame->Tree();
-  for (Frame* sub_frame = tree.FirstChild(); sub_frame;
-       sub_frame = sub_frame->Tree().NextSibling()) {
-    if (auto* sub_local_frame = DynamicTo<LocalFrame>(sub_frame)) {
-      ComputeShouldHandleScrollGestureOnMainThreadRegion(
-          sub_local_frame, scrolling_region, fixed_region);
-    }
-  }
-}
-
 void ScrollingCoordinator::
     FrameViewHasBackgroundAttachmentFixedObjectsDidChange(
         LocalFrameView* frame_view) {
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
index 9e29a67..99f1851 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator.h
@@ -46,7 +46,6 @@
 class CompositorAnimationTimeline;
 class LocalFrame;
 class LocalFrameView;
-class GraphicsLayer;
 class Page;
 class Region;
 class ScrollableArea;
@@ -185,9 +184,6 @@
   bool should_scroll_on_main_thread_dirty_;
 
  private:
-  void SetShouldHandleScrollGestureOnMainThreadRegion(const Region&,
-                                                      GraphicsLayer*);
-
   void AddScrollbarLayerGroup(ScrollableArea*,
                               ScrollbarOrientation,
                               std::unique_ptr<ScrollbarLayerGroup>);
diff --git a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
index d00dbe6..4f6ce0a1 100644
--- a/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/scrolling_coordinator_test.cc
@@ -66,14 +66,10 @@
 
 namespace blink {
 
-class ScrollingCoordinatorTest
-    : public testing::Test,
-      public testing::WithParamInterface<bool>,
-      private ScopedPaintNonFastScrollableRegionsForTest {
+class ScrollingCoordinatorTest : public testing::Test,
+                                 public testing::WithParamInterface<bool> {
  public:
-  ScrollingCoordinatorTest()
-      : ScopedPaintNonFastScrollableRegionsForTest(GetParam()),
-        base_url_("http://www.test.com/") {
+  ScrollingCoordinatorTest() : base_url_("http://www.test.com/") {
     helper_.Initialize(nullptr, nullptr, nullptr, &ConfigureSettings);
     GetWebView()->MainFrameWidget()->Resize(IntSize(320, 240));
 
@@ -960,20 +956,6 @@
 
   ForceFullCompositingUpdate();
 
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    Region scrolling;
-    Region fixed;
-    Page* page = GetFrame()->GetPage();
-    page->GetScrollingCoordinator()
-        ->ComputeShouldHandleScrollGestureOnMainThreadRegion(
-            To<LocalFrame>(page->MainFrame()), &scrolling, &fixed);
-
-    EXPECT_TRUE(scrolling.IsRect());
-    EXPECT_TRUE(fixed.IsRect());
-    EXPECT_EQ(scrolling.Rects().at(0), IntRect(0, 0, 300, 300));
-    EXPECT_EQ(fixed.Rects().at(0), IntRect(0, 500, 200, 200));
-  }
-
   // The non-fixed plugin should create a non-fast scrollable region in the
   // scrolling contents layer of the LayoutView.
   auto* layout_viewport = GetFrame()->View()->LayoutViewport();
@@ -984,23 +966,13 @@
 
   // The fixed plugin should create a non-fast scrollable region in a fixed
   // cc::Layer.
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    // The fixed non-fast region should be on the visual viewport's scrolling
-    // layer. This is not correct in all cases and is a restriction of the
-    // pre-PaintNonFsatScrollableRegions code.
-    auto* non_fast_layer =
-        GetFrame()->GetPage()->GetVisualViewport().ScrollLayer()->CcLayer();
-    EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
-              gfx::Rect(0, 500, 200, 200));
-  } else {
-    auto* fixed = GetFrame()->GetDocument()->getElementById("fixed");
-    auto* fixed_object = ToLayoutBox(fixed->GetLayoutObject());
-    auto* fixed_graphics_layer =
-        fixed_object->EnclosingLayer()->GraphicsLayerBacking(fixed_object);
-    EXPECT_EQ(
-        fixed_graphics_layer->CcLayer()->non_fast_scrollable_region().bounds(),
-        gfx::Rect(0, 0, 200, 200));
-  }
+  auto* fixed = GetFrame()->GetDocument()->getElementById("fixed");
+  auto* fixed_object = ToLayoutBox(fixed->GetLayoutObject());
+  auto* fixed_graphics_layer =
+      fixed_object->EnclosingLayer()->GraphicsLayerBacking(fixed_object);
+  EXPECT_EQ(
+      fixed_graphics_layer->CcLayer()->non_fast_scrollable_region().bounds(),
+      gfx::Rect(0, 0, 200, 200));
 }
 
 TEST_P(ScrollingCoordinatorTest, NonFastScrollableRegionWithBorder) {
@@ -1023,18 +995,8 @@
       )HTML");
   ForceFullCompositingUpdate();
 
-  // The non-fast scrollable regions are stored on different layers with and
-  // without PaintNonFastScrollableRegions. This test is only interested in
-  // the dimensions of the non-fast region generated.
-  cc::Layer* non_fast_layer = nullptr;
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    Page* page = GetFrame()->GetPage();
-    non_fast_layer = page->GetVisualViewport().ScrollLayer()->CcLayer();
-  } else {
-    non_fast_layer =
-        GetFrame()->View()->LayoutViewport()->LayerForScrolling()->CcLayer();
-  }
-
+  auto* non_fast_layer =
+      GetFrame()->View()->LayoutViewport()->LayerForScrolling()->CcLayer();
   EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
             gfx::Rect(0, 0, 120, 120));
 }
@@ -1355,23 +1317,6 @@
 
   ForceFullCompositingUpdate();
 
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    Region scrolling;
-    Region fixed;
-    Page* page = GetFrame()->GetPage();
-    page->GetScrollingCoordinator()
-        ->ComputeShouldHandleScrollGestureOnMainThreadRegion(
-            To<LocalFrame>(page->MainFrame()), &scrolling, &fixed);
-
-    EXPECT_TRUE(fixed.IsEmpty())
-        << "Since the DIV will move when the main frame is scrolled, it should"
-           " not be placed in the fixed region.";
-
-    EXPECT_EQ(scrolling.Bounds(), IntRect(0, 1200, 65, 65))
-        << "Since the DIV will move when the main frame is scrolled, it should "
-           "be placed in the scrolling region.";
-  }
-
   auto* layout_viewport = GetFrame()->View()->LayoutViewport();
   auto* mapping = layout_viewport->Layer()->GetCompositedLayerMapping();
   auto* non_fast_layer = mapping->ScrollingContentsLayer()->CcLayer();
@@ -1436,46 +1381,12 @@
       ScrollOffset(0, 1000), kProgrammaticScroll);
 
   ForceFullCompositingUpdate();
-
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    Region scrolling;
-    Region fixed;
-    Page* page = GetFrame()->GetPage();
-    page->GetScrollingCoordinator()
-        ->ComputeShouldHandleScrollGestureOnMainThreadRegion(
-            To<LocalFrame>(page->MainFrame()), &scrolling, &fixed);
-
-    EXPECT_TRUE(scrolling.IsEmpty())
-        << "Since the DIV will not move when the "
-           "main frame is scrolled, it should "
-           "not be placed in the scrolling region.";
-
-    EXPECT_EQ(fixed.Bounds(), IntRect(0, 20, 75, 75))
-        << "Since the DIV not move when the main frame is scrolled, it should "
-           "be placed in the scrolling region.";
-  }
-
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    // Since the main frame isn't scrollable, the NonFastScrollableRegions
-    // should be stored on the visual viewport's scrolling layer, rather than
-    // the main frame's scrolling contents layer. This is a restriction of the
-    // pre-PaintNonFastScrollableRegions code which only stored non-fast regions
-    // on one scrolling layer, and required using the visual viewport's
-    // scrolling layer to correctly handle some fixed-position cases.
-    auto* non_fast_layer =
-        GetFrame()->GetPage()->GetVisualViewport().ScrollLayer()->CcLayer();
-    EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
-              gfx::Rect(0, 20, 75, 75));
-  } else {
-    // PaintNonFastScrollableRegions can put the non-fast scrollable region on
-    // the fixed-position layer.
-    auto* outer_iframe = GetFrame()->GetDocument()->getElementById("iframe");
-    auto* outer_iframe_box = ToLayoutBox(outer_iframe->GetLayoutObject());
-    auto* mapping = outer_iframe_box->Layer()->GetCompositedLayerMapping();
-    auto* non_fast_layer = mapping->MainGraphicsLayer()->CcLayer();
-    EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
-              gfx::Rect(0, 0, 75, 75));
-  }
+  auto* outer_iframe = GetFrame()->GetDocument()->getElementById("iframe");
+  auto* outer_iframe_box = ToLayoutBox(outer_iframe->GetLayoutObject());
+  auto* mapping = outer_iframe_box->Layer()->GetCompositedLayerMapping();
+  auto* non_fast_layer = mapping->MainGraphicsLayer()->CcLayer();
+  EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
+            gfx::Rect(0, 0, 75, 75));
 }
 
 TEST_P(ScrollingCoordinatorTest, IframeCompositedScrollingHideAndShow) {
@@ -1501,20 +1412,8 @@
 
   ForceFullCompositingUpdate();
 
-  cc::Layer* non_fast_layer = nullptr;
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    // Since the main frame isn't scrollable, the NonFastScrollableRegions
-    // should be stored on the visual viewport's scrolling layer, rather than
-    // the main frame's scrolling contents layer. This is a restriction of the
-    // pre-PaintNonFastScrollableRegions code which only stored non-fast regions
-    // on one scrolling layer, and required using the visual viewport's
-    // scrolling layer to correctly handle some fixed-position cases.
-    Page* page = GetFrame()->GetPage();
-    non_fast_layer = page->GetVisualViewport().ScrollLayer()->CcLayer();
-  } else {
-    non_fast_layer =
-        GetFrame()->View()->LayoutViewport()->LayerForScrolling()->CcLayer();
-  }
+  cc::Layer* non_fast_layer =
+      GetFrame()->View()->LayoutViewport()->LayerForScrolling()->CcLayer();
 
   // Should have a NFSR initially.
   EXPECT_EQ(non_fast_layer->non_fast_scrollable_region().bounds(),
@@ -1704,16 +1603,7 @@
   histogram_tester.ExpectTotalCount("Blink.ScrollingCoordinator.UpdateTime", 3);
 }
 
-// TODO(pdr): Replace this with ScrollingCoordinatorTest when
-// PaintNonFastScrollableRegions is launched.
-using PaintNonFastScrollableRegionsScrollingCoordinatorTest =
-    ScrollingCoordinatorTest;
-INSTANTIATE_TEST_SUITE_P(All,
-                         PaintNonFastScrollableRegionsScrollingCoordinatorTest,
-                         ::testing::Values(true));
-
-TEST_P(PaintNonFastScrollableRegionsScrollingCoordinatorTest,
-       NonCompositedNonFastScrollableRegion) {
+TEST_P(ScrollingCoordinatorTest, NonCompositedNonFastScrollableRegion) {
   GetWebView()->GetPage()->GetSettings().SetPreferCompositingToLCDTextEnabled(
       false);
   LoadHTML(R"HTML(
@@ -1750,8 +1640,7 @@
   EXPECT_EQ(region.bounds(), gfx::Rect(0, 0, 200, 200));
 }
 
-TEST_P(PaintNonFastScrollableRegionsScrollingCoordinatorTest,
-       NonCompositedResizerNonFastScrollableRegion) {
+TEST_P(ScrollingCoordinatorTest, NonCompositedResizerNonFastScrollableRegion) {
   GetWebView()->GetPage()->GetSettings().SetPreferCompositingToLCDTextEnabled(
       false);
   LoadHTML(R"HTML(
@@ -1784,8 +1673,7 @@
   EXPECT_EQ(region.bounds(), gfx::Rect(66, 101, 14, 14));
 }
 
-TEST_P(PaintNonFastScrollableRegionsScrollingCoordinatorTest,
-       CompositedResizerNonFastScrollableRegion) {
+TEST_P(ScrollingCoordinatorTest, CompositedResizerNonFastScrollableRegion) {
   LoadHTML(R"HTML(
     <style>
       #container { will-change: transform; }
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h
index e51941a..7a6453b9 100644
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor.h
@@ -24,6 +24,12 @@
 // Subtract 1 because base::size includes the \0 string terminator.
 constexpr size_t kFragmentDirectivePrefixStringLength =
     base::size(kFragmentDirectivePrefix) - 1;
+// TODO(crbug/1007016): Remove support for the old prefix once we confirm the
+// new prefix choice.
+constexpr char kFragmentDirectiveNewPrefix[] = ":~:";
+// Subtract 1 because base::size includes the \0 string terminator.
+constexpr size_t kFragmentDirectiveNewPrefixStringLength =
+    base::size(kFragmentDirectiveNewPrefix) - 1;
 
 enum class TextFragmentFormat { PlainFragment, FragmentDirective };
 
diff --git a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_test.cc b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_test.cc
index 21b345e..30073e0 100644
--- a/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_test.cc
+++ b/third_party/blink/renderer/core/page/scrolling/text_fragment_anchor_test.cc
@@ -1562,6 +1562,105 @@
   EXPECT_FALSE(GetDocument().View()->GetFragmentAnchor());
 }
 
+// Test that the fragment directive delimiter :~: works properly and is stripped
+// from the URL.
+TEST_F(TextFragmentAnchorTest, FragmentDirectiveDelimiter) {
+  SimRequest request("https://example.com/test.html#:~:targetText=test",
+                     "text/html");
+  LoadURL("https://example.com/test.html#:~:targetText=test");
+  request.Complete(R"HTML(
+    <!DOCTYPE html>
+    <style>
+      body {
+        height: 1200px;
+      }
+      p {
+        position: absolute;
+        top: 1000px;
+      }
+    </style>
+    <p id="text">This is a test page</p>
+  )HTML");
+  Compositor().BeginFrame();
+
+  RunAsyncMatchingTasks();
+
+  EXPECT_EQ(1u, GetDocument().Markers().Markers().size());
+
+  EXPECT_EQ(GetDocument().Url(), "https://example.com/test.html");
+}
+
+// Test that a :~: fragment directive is scrolled into view and is stripped from
+// the URL when there's also a valid element fragment.
+TEST_F(TextFragmentAnchorTest, FragmentDirectiveDelimiterWithElementFragment) {
+  SimRequest request("https://example.com/test.html#element:~:targetText=test",
+                     "text/html");
+  LoadURL("https://example.com/test.html#element:~:targetText=test");
+  request.Complete(R"HTML(
+    <!DOCTYPE html>
+    <style>
+      body {
+        height: 2200px;
+      }
+      #text {
+        position: absolute;
+        top: 1000px;
+      }
+      #element {
+        position: absolute;
+        top: 2000px;
+      }
+    </style>
+    <p id="text">This is a test page</p>
+    <div id="element">Some text</div>
+  )HTML");
+  Compositor().BeginFrame();
+
+  RunAsyncMatchingTasks();
+
+  EXPECT_EQ(GetDocument().Url(), "https://example.com/test.html#element");
+
+  Element& p = *GetDocument().getElementById("text");
+
+  EXPECT_TRUE(ViewportRect().Contains(BoundingRectInFrame(p)))
+      << "<p> Element wasn't scrolled into view, viewport's scroll offset: "
+      << LayoutViewport()->GetScrollOffset().ToString();
+}
+
+// Test that a fragment directive is stripped from the URL even if it is not a
+// targetText.
+TEST_F(TextFragmentAnchorTest, IdFragmentWithFragmentDirective) {
+  SimRequest request("https://example.com/test.html#element:~:id", "text/html");
+  LoadURL("https://example.com/test.html#element:~:id");
+  request.Complete(R"HTML(
+    <!DOCTYPE html>
+    <style>
+      body {
+        height: 2200px;
+      }
+      p {
+        position: absolute;
+        top: 1000px;
+      }
+      div {
+        position: absolute;
+        top: 2000px;
+      }
+    </style>
+    <p id="element">This is a test page</p>
+    <div id="element:~:id">Some text</div>
+  )HTML");
+  Compositor().BeginFrame();
+
+  RunAsyncMatchingTasks();
+
+  Element& div = *GetDocument().getElementById("element");
+
+  EXPECT_TRUE(ViewportRect().Contains(BoundingRectInFrame(div)))
+      << "Should have scrolled <div> into view but didn't, scroll offset: "
+      << LayoutViewport()->GetScrollOffset().ToString();
+}
+
 }  // namespace
 
 }  // namespace blink
diff --git a/third_party/blink/renderer/core/paint/box_painter.cc b/third_party/blink/renderer/core/paint/box_painter.cc
index 645f5be..a532804 100644
--- a/third_party/blink/renderer/core/paint/box_painter.cc
+++ b/third_party/blink/renderer/core/paint/box_painter.cc
@@ -98,30 +98,26 @@
 
   RecordHitTestData(paint_info, paint_rect, *background_client);
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    bool needs_scroll_hit_test = true;
-    if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
-      // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
-      // display items for composited scrollers because these display items are
-      // only used to create non-fast scrollable regions for non-composited
-      // scrollers. With CompositeAfterPaint, we always paint the scroll hit
-      // test display items but ignore the non-fast region if the scroll was
-      // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
-      if (layout_box_.HasLayer() &&
-          layout_box_.Layer()->GetCompositedLayerMapping() &&
-          layout_box_.Layer()
-              ->GetCompositedLayerMapping()
-              ->HasScrollingLayer()) {
-        needs_scroll_hit_test = false;
-      }
+  bool needs_scroll_hit_test = true;
+  if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
+    // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
+    // display items for composited scrollers because these display items are
+    // only used to create non-fast scrollable regions for non-composited
+    // scrollers. With CompositeAfterPaint, we always paint the scroll hit
+    // test display items but ignore the non-fast region if the scroll was
+    // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
+    if (layout_box_.HasLayer() &&
+        layout_box_.Layer()->GetCompositedLayerMapping() &&
+        layout_box_.Layer()->GetCompositedLayerMapping()->HasScrollingLayer()) {
+      needs_scroll_hit_test = false;
     }
-
-    // Record the scroll hit test after the non-scrolling background so
-    // background squashing is not affected. Hit test order would be equivalent
-    // if this were immediately before the non-scrolling background.
-    if (!painting_scrolling_background && needs_scroll_hit_test)
-      RecordScrollHitTestData(paint_info, *background_client);
   }
+
+  // Record the scroll hit test after the non-scrolling background so
+  // background squashing is not affected. Hit test order would be equivalent
+  // if this were immediately before the non-scrolling background.
+  if (!painting_scrolling_background && needs_scroll_hit_test)
+    RecordScrollHitTestData(paint_info, *background_client);
 }
 
 bool BoxPainter::BackgroundIsKnownToBeOpaque(const PaintInfo& paint_info) {
@@ -317,8 +313,6 @@
 void BoxPainter::RecordScrollHitTestData(
     const PaintInfo& paint_info,
     const DisplayItemClient& background_client) {
-  DCHECK(RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-
   // Hit test display items are only needed for compositing. This flag is used
   // for for printing and drag images which do not need hit testing.
   if (paint_info.GetGlobalPaintFlags() & kGlobalPaintFlattenCompositingLayers)
diff --git a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
index f7a641e6e..f1af9c9 100644
--- a/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
+++ b/third_party/blink/renderer/core/paint/compositing/composited_layer_mapping.cc
@@ -1299,7 +1299,6 @@
   bool paints_hit_test =
       has_painted_content || GetLayoutObject().HasEffectiveAllowedTouchAction();
   bool paints_scroll_hit_test =
-      RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled() &&
       ((owning_layer_.GetScrollableArea() &&
         owning_layer_.GetScrollableArea()->ScrollsOverflow()) ||
        (GetPluginContainer(GetLayoutObject()) &&
diff --git a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
index 26e03a7..1d5f688 100644
--- a/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
+++ b/third_party/blink/renderer/core/paint/ng/ng_box_fragment_painter.cc
@@ -276,8 +276,6 @@
 void NGBoxFragmentPainter::RecordScrollHitTestData(
     const PaintInfo& paint_info,
     const DisplayItemClient& background_client) {
-  DCHECK(RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
-
   // Hit test display items are only needed for compositing. This flag is used
   // for for printing and drag images which do not need hit testing.
   if (paint_info.GetGlobalPaintFlags() & kGlobalPaintFlattenCompositingLayers)
@@ -629,28 +627,26 @@
                     PhysicalFragment().EffectiveAllowedTouchAction()));
   }
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    bool needs_scroll_hit_test = true;
-    if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
-      // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
-      // display items for composited scrollers because these display items are
-      // only used to create non-fast scrollable regions for non-composited
-      // scrollers. With CompositeAfterPaint, we always paint the scroll hit
-      // test display items but ignore the non-fast region if the scroll was
-      // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
-      const auto* layer = PhysicalFragment().Layer();
-      if (layer && layer->GetCompositedLayerMapping() &&
-          layer->GetCompositedLayerMapping()->HasScrollingLayer()) {
-        needs_scroll_hit_test = false;
-      }
+  bool needs_scroll_hit_test = true;
+  if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
+    // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
+    // display items for composited scrollers because these display items are
+    // only used to create non-fast scrollable regions for non-composited
+    // scrollers. With CompositeAfterPaint, we always paint the scroll hit
+    // test display items but ignore the non-fast region if the scroll was
+    // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
+    const auto* layer = PhysicalFragment().Layer();
+    if (layer && layer->GetCompositedLayerMapping() &&
+        layer->GetCompositedLayerMapping()->HasScrollingLayer()) {
+      needs_scroll_hit_test = false;
     }
-
-    // Record the scroll hit test after the non-scrolling background so
-    // background squashing is not affected. Hit test order would be equivalent
-    // if this were immediately before the non-scrolling background.
-    if (!painting_scrolling_background && needs_scroll_hit_test)
-      RecordScrollHitTestData(paint_info, *background_client);
   }
+
+  // Record the scroll hit test after the non-scrolling background so
+  // background squashing is not affected. Hit test order would be equivalent
+  // if this were immediately before the non-scrolling background.
+  if (!painting_scrolling_background && needs_scroll_hit_test)
+    RecordScrollHitTestData(paint_info, *background_client);
 }
 
 // TODO(kojii): This logic is kept in sync with BoxPainter. Not much efforts to
diff --git a/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc b/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc
index 48e70b8..09b8451 100644
--- a/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc
+++ b/third_party/blink/renderer/core/paint/paint_and_raster_invalidation_test.cc
@@ -1051,12 +1051,10 @@
   UpdateAllLifecyclePhasesForTest();
 
   Vector<RasterInvalidationInfo> invalidations;
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    // This is for DisplayItem::kResizerScrollHitTest.
-    invalidations.push_back(RasterInvalidationInfo{
-        object, object->DebugName(), IntRect(0, 0, 200, 100),
-        PaintInvalidationReason::kGeometry});
-  }
+  // This is for DisplayItem::kResizerScrollHitTest.
+  invalidations.push_back(RasterInvalidationInfo{
+      object, object->DebugName(), IntRect(0, 0, 200, 100),
+      PaintInvalidationReason::kGeometry});
   invalidations.push_back(RasterInvalidationInfo{
       object, object->DebugName(), IntRect(0, 0, 200, 100),
       PaintInvalidationReason::kGeometry});
diff --git a/third_party/blink/renderer/core/paint/paint_layer_painter_test.cc b/third_party/blink/renderer/core/paint/paint_layer_painter_test.cc
index ee0e5c9..e80c5ef9 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_painter_test.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_painter_test.cc
@@ -372,7 +372,7 @@
   GetDocument().View()->UpdateAllLifecyclePhasesExceptPaint();
   EXPECT_FALSE(target_layer->NeedsRepaint());
   EXPECT_TRUE(PaintWithoutCommit());
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled())
+  if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled())
     EXPECT_EQ(3, NumCachedNewItems());
   else
     EXPECT_EQ(2, NumCachedNewItems());
@@ -411,7 +411,7 @@
   // a partially painted layer will trigger repaint.
   EXPECT_FALSE(target_layer->NeedsRepaint());
   EXPECT_TRUE(PaintWithoutCommit());
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled())
+  if (RuntimeEnabledFeatures::CompositeAfterPaintEnabled())
     EXPECT_EQ(3, NumCachedNewItems());
   else
     EXPECT_EQ(2, NumCachedNewItems());
diff --git a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
index 8daf3530..c202b4d 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
+++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.cc
@@ -145,8 +145,6 @@
       GetScrollAnimator().SetCurrentOffset(scroll_offset_);
     element->SetSavedLayerScrollOffset(ScrollOffset());
   }
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled())
-    UpdateResizerAreaSet();
 }
 
 PaintLayerScrollableArea::~PaintLayerScrollableArea() {
@@ -185,13 +183,6 @@
       element->SetSavedLayerScrollOffset(scroll_offset_);
   }
 
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    if (LocalFrame* frame = GetLayoutBox()->GetFrame()) {
-      if (LocalFrameView* frame_view = frame->View())
-        frame_view->RemoveResizerArea(*GetLayoutBox());
-    }
-  }
-
   // Note: it is not safe to call ScrollAnchor::clear if the document is being
   // destroyed, because LayoutObjectChildList::removeChildNode skips the call to
   // willBeRemovedFromTree,
@@ -742,16 +733,6 @@
   return !!frame_view->GetFrame().GetDocument();
 }
 
-IntRect PaintLayerScrollableArea::ScrollableAreaBoundingBox() const {
-  if (LocalFrame* frame = GetLayoutBox()->GetFrame()) {
-    if (LocalFrameView* local_root = frame->LocalFrameRoot().View()) {
-      return local_root->RootFrameToDocument(frame->View()->ConvertToRootFrame(
-          GetLayoutBox()->AbsoluteBoundingBoxRect(0)));
-    }
-  }
-  return IntRect();
-}
-
 void PaintLayerScrollableArea::RegisterForAnimation() {
   if (HasBeenDisposed())
     return;
@@ -1187,8 +1168,6 @@
   ComputeScrollbarExistence(needs_horizontal_scrollbar,
                             needs_vertical_scrollbar, kForbidAddingAutoBars);
 
-  if (!RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled())
-    UpdateResizerAreaSet();
   UpdateResizerStyle(old_style);
 
   // Avoid some unnecessary computation if there were and will be no scrollbars.
@@ -1836,19 +1815,6 @@
   return false;
 }
 
-void PaintLayerScrollableArea::UpdateResizerAreaSet() {
-  LocalFrame* frame = GetLayoutBox()->GetFrame();
-  if (!frame)
-    return;
-  LocalFrameView* frame_view = frame->View();
-  if (!frame_view)
-    return;
-  if (GetLayoutBox()->CanResize())
-    frame_view->AddResizerArea(*GetLayoutBox());
-  else
-    frame_view->RemoveResizerArea(*GetLayoutBox());
-}
-
 void PaintLayerScrollableArea::UpdateResizerStyle(
     const ComputedStyle* old_style) {
   if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled() && old_style &&
@@ -2167,12 +2133,10 @@
   // PaintPropertyTreeBuilder::updateScrollAndScrollTranslation).
   GetLayoutBox()->SetNeedsPaintPropertyUpdate();
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    // Scroll hit test display items depend on whether the box scrolls overflow.
-    // The scroll hit test display items paint in the background phase
-    // (see: BoxPainter::PaintBoxDecorationBackground).
-    GetLayoutBox()->SetBackgroundNeedsFullPaintInvalidation();
-  }
+  // Scroll hit test display items depend on whether the box scrolls overflow.
+  // The scroll hit test display items paint in the background phase
+  // (see: BoxPainter::PaintBoxDecorationBackground).
+  GetLayoutBox()->SetBackgroundNeedsFullPaintInvalidation();
 
   if (scrolls_overflow_) {
     DCHECK(CanHaveOverflowScrollbars(*GetLayoutBox()));
diff --git a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
index 193d0cc0..302a5da 100644
--- a/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
+++ b/third_party/blink/renderer/core/paint/paint_layer_scrollable_area.h
@@ -328,7 +328,6 @@
   bool ScrollbarsCanBeActive() const override;
   void ScrollbarVisibilityChanged() override;
   void ScrollbarFrameRectChanged() override;
-  IntRect ScrollableAreaBoundingBox() const override;
   void RegisterForAnimation() override;
   void DeregisterForAnimation() override;
   bool UserInputScrollable(ScrollbarOrientation) const override;
@@ -587,8 +586,6 @@
   LayoutSize MinimumSizeForResizing(float zoom_factor);
   PhysicalRect LayoutContentRect(IncludeScrollbarsInRect) const;
 
-  // See comments on isPointInResizeControl.
-  void UpdateResizerAreaSet();
   void UpdateResizerStyle(const ComputedStyle* old_style);
 
   void UpdateScrollableAreaSet();
diff --git a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
index 3f6d81c4..9ba1a94 100644
--- a/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
+++ b/third_party/blink/renderer/core/paint/scrollable_area_painter.cc
@@ -37,16 +37,13 @@
   abs_rect.MoveBy(paint_offset);
 
   const auto& client = DisplayItemClientForCorner();
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    IntRect touch_rect = scrollable_area_->ResizerCornerRect(
-        GetScrollableArea().GetLayoutBox()->PixelSnappedBorderBoxRect(
-            scrollable_area_->Layer()->SubpixelAccumulation()),
-        kResizerForTouch);
-    touch_rect.MoveBy(paint_offset);
-    ScrollHitTestDisplayItem::Record(context, client,
-                                     DisplayItem::kResizerScrollHitTest,
-                                     nullptr, touch_rect);
-  }
+  IntRect touch_rect = scrollable_area_->ResizerCornerRect(
+      GetScrollableArea().GetLayoutBox()->PixelSnappedBorderBoxRect(
+          scrollable_area_->Layer()->SubpixelAccumulation()),
+      kResizerForTouch);
+  touch_rect.MoveBy(paint_offset);
+  ScrollHitTestDisplayItem::Record(
+      context, client, DisplayItem::kResizerScrollHitTest, nullptr, touch_rect);
 
   if (const auto* resizer = GetScrollableArea().Resizer()) {
     if (!cull_rect.Intersects(abs_rect))
diff --git a/third_party/blink/renderer/core/paint/view_painter.cc b/third_party/blink/renderer/core/paint/view_painter.cc
index 19d1007c..9a0e96c 100644
--- a/third_party/blink/renderer/core/paint/view_painter.cc
+++ b/third_party/blink/renderer/core/paint/view_painter.cc
@@ -38,9 +38,8 @@
 
   bool has_touch_action_rect = layout_view_.HasEffectiveAllowedTouchAction();
   bool paints_scroll_hit_test =
-      RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled() &&
-      (layout_view_.GetScrollableArea() &&
-       layout_view_.GetScrollableArea()->ScrollsOverflow());
+      layout_view_.GetScrollableArea() &&
+      layout_view_.GetScrollableArea()->ScrollsOverflow();
   if (!layout_view_.HasBoxDecorationBackground() && !has_touch_action_rect &&
       !paints_scroll_hit_test)
     return;
@@ -84,32 +83,30 @@
                            *background_client);
   }
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    bool needs_scroll_hit_test = true;
-    if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
-      // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
-      // display items for composited scrollers because these display items are
-      // only used to create non-fast scrollable regions for non-composited
-      // scrollers. With CompositeAfterPaint, we always paint the scroll hit
-      // test display items but ignore the non-fast region if the scroll was
-      // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
-      if (layout_view_.HasLayer() &&
-          layout_view_.Layer()->GetCompositedLayerMapping() &&
-          layout_view_.Layer()
-              ->GetCompositedLayerMapping()
-              ->HasScrollingLayer()) {
-        needs_scroll_hit_test = false;
-      }
+  bool needs_scroll_hit_test = true;
+  if (!RuntimeEnabledFeatures::CompositeAfterPaintEnabled()) {
+    // Pre-CompositeAfterPaint, there is no need to emit scroll hit test
+    // display items for composited scrollers because these display items are
+    // only used to create non-fast scrollable regions for non-composited
+    // scrollers. With CompositeAfterPaint, we always paint the scroll hit
+    // test display items but ignore the non-fast region if the scroll was
+    // composited in PaintArtifactCompositor::UpdateNonFastScrollableRegions.
+    if (layout_view_.HasLayer() &&
+        layout_view_.Layer()->GetCompositedLayerMapping() &&
+        layout_view_.Layer()
+            ->GetCompositedLayerMapping()
+            ->HasScrollingLayer()) {
+      needs_scroll_hit_test = false;
     }
+  }
 
-    // Record the scroll hit test after the non-scrolling background so
-    // background squashing is not affected. Hit test order would be equivalent
-    // if this were immediately before the non-scrolling background.
-    if (paints_scroll_hit_test && !painting_scrolling_background &&
-        needs_scroll_hit_test) {
-      BoxPainter(layout_view_)
-          .RecordScrollHitTestData(paint_info, *background_client);
-    }
+  // Record the scroll hit test after the non-scrolling background so
+  // background squashing is not affected. Hit test order would be equivalent
+  // if this were immediately before the non-scrolling background.
+  if (paints_scroll_hit_test && !painting_scrolling_background &&
+      needs_scroll_hit_test) {
+    BoxPainter(layout_view_)
+        .RecordScrollHitTestData(paint_info, *background_client);
   }
 }
 
diff --git a/third_party/blink/renderer/core/scroll/scroll_animator_test.cc b/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
index 1983545..1ca0771 100644
--- a/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
+++ b/third_party/blink/renderer/core/scroll/scroll_animator_test.cc
@@ -78,7 +78,6 @@
   MOCK_CONST_METHOD1(VisibleContentRect, IntRect(IncludeScrollbarsInRect));
   MOCK_CONST_METHOD0(ContentsSize, IntSize());
   MOCK_CONST_METHOD0(ScrollbarsCanBeActive, bool());
-  MOCK_CONST_METHOD0(ScrollableAreaBoundingBox, IntRect());
   MOCK_METHOD0(RegisterForAnimation, void());
   MOCK_METHOD0(ScheduleAnimation, bool());
   MOCK_CONST_METHOD0(UsedColorScheme, WebColorScheme());
diff --git a/third_party/blink/renderer/core/scroll/scrollable_area.h b/third_party/blink/renderer/core/scroll/scrollable_area.h
index 330a4c7..377c015 100644
--- a/third_party/blink/renderer/core/scroll/scrollable_area.h
+++ b/third_party/blink/renderer/core/scroll/scrollable_area.h
@@ -284,10 +284,6 @@
   virtual void ScrollbarStyleChanged() {}
   virtual bool ScrollbarsCanBeActive() const = 0;
 
-  // Returns the bounding box of this scrollable area, in the coordinate system
-  // of the top-level FrameView's Document.
-  virtual IntRect ScrollableAreaBoundingBox() const = 0;
-
   virtual CompositorElementId GetCompositorElementId() const = 0;
 
   virtual CompositorElementId GetScrollbarElementId(
diff --git a/third_party/blink/renderer/core/scroll/scrollbar_test_suite.h b/third_party/blink/renderer/core/scroll/scrollbar_test_suite.h
index 8b5ccfaca..f0344ea 100644
--- a/third_party/blink/renderer/core/scroll/scrollbar_test_suite.h
+++ b/third_party/blink/renderer/core/scroll/scrollbar_test_suite.h
@@ -65,7 +65,6 @@
   MOCK_CONST_METHOD0(EnclosingScrollableArea, ScrollableArea*());
   MOCK_CONST_METHOD1(VisibleContentRect, IntRect(IncludeScrollbarsInRect));
   MOCK_CONST_METHOD0(ContentsSize, IntSize());
-  MOCK_CONST_METHOD0(ScrollableAreaBoundingBox, IntRect());
   MOCK_CONST_METHOD0(LayerForHorizontalScrollbar, GraphicsLayer*());
   MOCK_CONST_METHOD0(LayerForVerticalScrollbar, GraphicsLayer*());
   MOCK_CONST_METHOD0(HorizontalScrollbar, Scrollbar*());
diff --git a/third_party/blink/renderer/core/streams/transform_stream_test.cc b/third_party/blink/renderer/core/streams/transform_stream_test.cc
index 3cf0af4..5c735c28 100644
--- a/third_party/blink/renderer/core/streams/transform_stream_test.cc
+++ b/third_party/blink/renderer/core/streams/transform_stream_test.cc
@@ -7,6 +7,7 @@
 #include "testing/gmock/include/gmock/gmock.h"
 #include "testing/gtest/include/gtest/gtest.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_function.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise_tester.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_testing.h"
@@ -176,116 +177,45 @@
   Mock::AllowLeak(mock);
 }
 
-class ExpectNotReached : public ScriptFunction {
- public:
-  static v8::Local<v8::Function> Create(ScriptState* script_state) {
-    auto* self = MakeGarbageCollected<ExpectNotReached>(script_state);
-    return self->BindToV8Function();
+bool IsIteratorForStringMatching(ScriptState* script_state,
+                                 ScriptValue value,
+                                 const String& expected) {
+  if (!value.IsObject()) {
+    return false;
   }
+  bool done = false;
+  auto chunk = V8UnpackIteratorResult(
+      script_state,
+      value.V8Value()->ToObject(script_state->GetContext()).ToLocalChecked(),
+      &done);
+  if (done || chunk.IsEmpty())
+    return false;
+  return ToCoreStringWithUndefinedOrNullCheck(chunk.ToLocalChecked()) ==
+         expected;
+}
 
-  explicit ExpectNotReached(ScriptState* script_state)
-      : ScriptFunction(script_state) {}
-
- private:
-  ScriptValue Call(ScriptValue) override {
-    ADD_FAILURE() << "ExpectNotReached was reached";
-    return ScriptValue();
+bool IsTypeError(ScriptState* script_state,
+                 ScriptValue value,
+                 const String& message) {
+  v8::Local<v8::Object> object;
+  if (!value.V8Value()->ToObject(script_state->GetContext()).ToLocal(&object)) {
+    return false;
   }
-};
+  if (!object->IsNativeError())
+    return false;
 
-// Fails the test if the iterator passed to the function does not have a value
-// of exactly |expected|.
-class ExpectChunkIsString : public ScriptFunction {
- public:
-  static v8::Local<v8::Function> Create(ScriptState* script_state,
-                                        const String& expected,
-                                        bool* called) {
-    auto* self = MakeGarbageCollected<ExpectChunkIsString>(script_state,
-                                                           expected, called);
-    return self->BindToV8Function();
-  }
-
-  ExpectChunkIsString(ScriptState* script_state,
-                      const String& expected,
-                      bool* called)
-      : ScriptFunction(script_state), expected_(expected), called_(called) {}
-
- private:
-  ScriptValue Call(ScriptValue value) override {
-    *called_ = true;
-    if (!value.IsObject()) {
-      ADD_FAILURE() << "iterator must be an object";
-      return ScriptValue();
-    }
-    bool done = false;
-    auto* script_state = GetScriptState();
-    auto chunk = V8UnpackIteratorResult(
-        script_state,
-        value.V8Value()->ToObject(script_state->GetContext()).ToLocalChecked(),
-        &done);
-    EXPECT_FALSE(done);
-    EXPECT_FALSE(chunk.IsEmpty());
-    EXPECT_EQ(ToCoreStringWithUndefinedOrNullCheck(chunk.ToLocalChecked()),
-              expected_);
-    return ScriptValue();
-  }
-
-  String expected_;
-  bool* called_;
-};
-
-class ExpectTypeError : public ScriptFunction {
- public:
-  static v8::Local<v8::Function> Create(ScriptState* script_state,
-                                        const String& message,
-                                        bool* called) {
-    auto* self =
-        MakeGarbageCollected<ExpectTypeError>(script_state, message, called);
-    return self->BindToV8Function();
-  }
-
-  ExpectTypeError(ScriptState* script_state,
-                  const String& message,
-                  bool* called)
-      : ScriptFunction(script_state), message_(message), called_(called) {}
-
- private:
-  ScriptValue Call(ScriptValue value) override {
-    *called_ = true;
-    EXPECT_TRUE(IsTypeError(GetScriptState(), value, message_));
-    return ScriptValue();
-  }
-
-  static bool IsTypeError(ScriptState* script_state,
-                          ScriptValue value,
-                          const String& message) {
-    v8::Local<v8::Object> object;
-    if (!value.V8Value()
-             ->ToObject(script_state->GetContext())
-             .ToLocal(&object)) {
-      return false;
-    }
-    if (!object->IsNativeError())
-      return false;
-    return Has(script_state, object, "name", "TypeError") &&
-           Has(script_state, object, "message", message);
-  }
-
-  static bool Has(ScriptState* script_state,
-                  v8::Local<v8::Object> object,
-                  const String& key,
-                  const String& value) {
-    auto context = script_state->GetContext();
-    auto* isolate = script_state->GetIsolate();
+  const auto& Has = [script_state, object](const String& key,
+                                           const String& value) -> bool {
     v8::Local<v8::Value> actual;
-    return object->Get(context, V8AtomicString(isolate, key))
+    return object
+               ->Get(script_state->GetContext(),
+                     V8AtomicString(script_state->GetIsolate(), key))
                .ToLocal(&actual) &&
            ToCoreStringWithUndefinedOrNullCheck(actual) == value;
-  }
+  };
 
-  String message_;
-  bool* called_;
-};
+  return Has("name", "TypeError") && Has("message", message);
+}
 
 TEST_P(TransformStreamTest, EnqueueFromTransform) {
   V8TestingScope scope;
@@ -302,12 +232,10 @@
   ReadableStream* readable = Stream()->Readable();
   auto* read_handle =
       readable->GetReadHandle(script_state, ASSERT_NO_EXCEPTION);
-  bool chunk_seen = false;
-  read_handle->Read(script_state)
-      .Then(ExpectChunkIsString::Create(script_state, "a", &chunk_seen),
-            ExpectNotReached::Create(script_state));
-  v8::MicrotasksScope::PerformCheckpoint(scope.GetIsolate());
-  EXPECT_TRUE(chunk_seen);
+  ScriptPromiseTester tester(script_state, read_handle->Read(script_state));
+  tester.WaitUntilSettled();
+  EXPECT_TRUE(tester.IsFulfilled());
+  EXPECT_TRUE(IsIteratorForStringMatching(script_state, tester.Value(), "a"));
 }
 
 TEST_P(TransformStreamTest, EnqueueFromFlush) {
@@ -346,12 +274,10 @@
   ReadableStream* readable = Stream()->Readable();
   auto* read_handle =
       readable->GetReadHandle(script_state, ASSERT_NO_EXCEPTION);
-  bool chunkSeen = false;
-  read_handle->Read(script_state)
-      .Then(ExpectChunkIsString::Create(script_state, "a", &chunkSeen),
-            ExpectNotReached::Create(script_state));
-  v8::MicrotasksScope::PerformCheckpoint(scope.GetIsolate());
-  EXPECT_TRUE(chunkSeen);
+  ScriptPromiseTester tester(script_state, read_handle->Read(script_state));
+  tester.WaitUntilSettled();
+  EXPECT_TRUE(tester.IsFulfilled());
+  EXPECT_TRUE(IsIteratorForStringMatching(script_state, tester.Value(), "a"));
 }
 
 TEST_P(TransformStreamTest, ThrowFromTransform) {
@@ -393,19 +319,16 @@
   ReadableStream* readable = Stream()->Readable();
   auto* read_handle =
       readable->GetReadHandle(script_state, ASSERT_NO_EXCEPTION);
-  bool readableTypeErrorThrown = false;
-  bool writableTypeErrorThrown = false;
-  read_handle->Read(script_state)
-      .Then(ExpectNotReached::Create(script_state),
-            ExpectTypeError::Create(script_state, kMessage,
-                                    &readableTypeErrorThrown));
-  ScriptPromise::Cast(script_state, promise)
-      .Then(ExpectNotReached::Create(script_state),
-            ExpectTypeError::Create(script_state, kMessage,
-                                    &writableTypeErrorThrown));
-  v8::MicrotasksScope::PerformCheckpoint(scope.GetIsolate());
-  EXPECT_TRUE(readableTypeErrorThrown);
-  EXPECT_TRUE(writableTypeErrorThrown);
+  ScriptPromiseTester read_tester(script_state,
+                                  read_handle->Read(script_state));
+  read_tester.WaitUntilSettled();
+  EXPECT_TRUE(read_tester.IsRejected());
+  EXPECT_TRUE(IsTypeError(script_state, read_tester.Value(), kMessage));
+  ScriptPromiseTester write_tester(script_state,
+                                   ScriptPromise::Cast(script_state, promise));
+  write_tester.WaitUntilSettled();
+  EXPECT_TRUE(write_tester.IsRejected());
+  EXPECT_TRUE(IsTypeError(script_state, write_tester.Value(), kMessage));
 }
 
 TEST_P(TransformStreamTest, ThrowFromFlush) {
@@ -445,19 +368,16 @@
   ReadableStream* readable = Stream()->Readable();
   auto* read_handle =
       readable->GetReadHandle(script_state, ASSERT_NO_EXCEPTION);
-  bool readableTypeErrorThrown = false;
-  bool writableTypeErrorThrown = false;
-  read_handle->Read(script_state)
-      .Then(ExpectNotReached::Create(script_state),
-            ExpectTypeError::Create(script_state, kMessage,
-                                    &readableTypeErrorThrown));
-  ScriptPromise::Cast(script_state, promise)
-      .Then(ExpectNotReached::Create(script_state),
-            ExpectTypeError::Create(script_state, kMessage,
-                                    &writableTypeErrorThrown));
-  v8::MicrotasksScope::PerformCheckpoint(scope.GetIsolate());
-  EXPECT_TRUE(readableTypeErrorThrown);
-  EXPECT_TRUE(writableTypeErrorThrown);
+  ScriptPromiseTester read_tester(script_state,
+                                  read_handle->Read(script_state));
+  read_tester.WaitUntilSettled();
+  EXPECT_TRUE(read_tester.IsRejected());
+  EXPECT_TRUE(IsTypeError(script_state, read_tester.Value(), kMessage));
+  ScriptPromiseTester write_tester(script_state,
+                                   ScriptPromise::Cast(script_state, promise));
+  write_tester.WaitUntilSettled();
+  EXPECT_TRUE(write_tester.IsRejected());
+  EXPECT_TRUE(IsTypeError(script_state, write_tester.Value(), kMessage));
 }
 
 TEST_P(TransformStreamTest, CreateFromReadableWritablePair) {
diff --git a/third_party/blink/renderer/core/testing/internals.cc b/third_party/blink/renderer/core/testing/internals.cc
index 75658b0..44066ef 100644
--- a/third_party/blink/renderer/core/testing/internals.cc
+++ b/third_party/blink/renderer/core/testing/internals.cc
@@ -2226,44 +2226,32 @@
   frame->View()->UpdateAllLifecyclePhases(
       DocumentLifecycle::LifecycleUpdateReason::kTest);
 
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-    auto* pac = document->View()->GetPaintArtifactCompositor();
-    auto* layer_tree_host = pac->RootLayer()->layer_tree_host();
-    // Ensure |cc::TransformTree| has updated the correct ToScreen transforms.
-    layer_tree_host->UpdateLayers();
+  auto* pac = document->View()->GetPaintArtifactCompositor();
+  auto* layer_tree_host = pac->RootLayer()->layer_tree_host();
+  // Ensure |cc::TransformTree| has updated the correct ToScreen transforms.
+  layer_tree_host->UpdateLayers();
 
-    Vector<IntRect> layer_non_fast_scrollable_rects;
-    for (auto* layer : *layer_tree_host) {
-      const cc::Region& non_fast_region = layer->non_fast_scrollable_region();
-      for (const gfx::Rect& non_fast_rect : non_fast_region) {
-        gfx::RectF layer_rect(non_fast_rect);
+  Vector<IntRect> layer_non_fast_scrollable_rects;
+  for (auto* layer : *layer_tree_host) {
+    const cc::Region& non_fast_region = layer->non_fast_scrollable_region();
+    for (const gfx::Rect& non_fast_rect : non_fast_region) {
+      gfx::RectF layer_rect(non_fast_rect);
 
-        // Map |layer_rect| into screen space.
-        layer_rect.Offset(layer->offset_to_transform_parent());
-        auto& transform_tree =
-            layer->layer_tree_host()->property_trees()->transform_tree;
-        transform_tree.UpdateTransforms(layer->transform_tree_index());
-        const gfx::Transform& to_screen =
-            transform_tree.ToScreen(layer->transform_tree_index());
-        to_screen.TransformRect(&layer_rect);
+      // Map |layer_rect| into screen space.
+      layer_rect.Offset(layer->offset_to_transform_parent());
+      auto& transform_tree =
+          layer->layer_tree_host()->property_trees()->transform_tree;
+      transform_tree.UpdateTransforms(layer->transform_tree_index());
+      const gfx::Transform& to_screen =
+          transform_tree.ToScreen(layer->transform_tree_index());
+      to_screen.TransformRect(&layer_rect);
 
-        layer_non_fast_scrollable_rects.push_back(
-            IntRect(ToEnclosingRect(layer_rect)));
-      }
+      layer_non_fast_scrollable_rects.push_back(
+          IntRect(ToEnclosingRect(layer_rect)));
     }
-
-    return DOMRectList::Create(layer_non_fast_scrollable_rects);
   }
 
-  GraphicsLayer* layer = frame->View()->LayoutViewport()->LayerForScrolling();
-  if (!layer)
-    return DOMRectList::Create();
-  const cc::Region& region = layer->CcLayer()->non_fast_scrollable_region();
-  Vector<IntRect> rects;
-  rects.ReserveCapacity(region.GetRegionComplexity());
-  for (const gfx::Rect& rect : region)
-    rects.push_back(IntRect(rect));
-  return DOMRectList::Create(rects);
+  return DOMRectList::Create(layer_non_fast_scrollable_rects);
 }
 
 void Internals::evictAllResources() const {
diff --git a/third_party/blink/renderer/core/timezone/timezone_controller.cc b/third_party/blink/renderer/core/timezone/timezone_controller.cc
index 854ed6a..9dea9b5 100644
--- a/third_party/blink/renderer/core/timezone/timezone_controller.cc
+++ b/third_party/blink/renderer/core/timezone/timezone_controller.cc
@@ -35,31 +35,41 @@
   NotifyTimezoneChangeToV8(worker_thread->GlobalScope()->GetIsolate());
 }
 
-void SetIcuTimeZoneAndNotifyV8(const String& timezone_id) {
+String GetTimezoneId(const icu::TimeZone& timezone) {
+  icu::UnicodeString unicode_timezone_id;
+  timezone.getID(unicode_timezone_id);
+  return String(icu::toUCharPtr(unicode_timezone_id.getBuffer()),
+                static_cast<unsigned>(unicode_timezone_id.length()));
+}
+
+String GetCurrentTimezoneId() {
+  std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createDefault());
+  CHECK(timezone);
+  return GetTimezoneId(*timezone.get());
+}
+
+bool SetIcuTimeZoneAndNotifyV8(const String& timezone_id) {
   DCHECK(!timezone_id.IsEmpty());
-  DCHECK(timezone_id.ContainsOnlyASCIIOrEmpty());
-  icu::TimeZone* timezone = icu::TimeZone::createTimeZone(
-      icu::UnicodeString(timezone_id.Ascii().data(), -1, US_INV));
-  icu::TimeZone::adoptDefault(timezone);
+  std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createTimeZone(
+      icu::UnicodeString(timezone_id.Ascii().data(), -1, US_INV)));
+  CHECK(timezone);
+
+  if (*timezone == icu::TimeZone::getUnknown())
+    return false;
+
+  icu::TimeZone::adoptDefault(timezone.release());
 
   NotifyTimezoneChangeToV8(V8PerIsolateData::MainThreadIsolate());
   WorkerThread::CallOnAllWorkerThreads(&NotifyTimezoneChangeOnWorkerThread,
                                        TaskType::kInternalDefault);
-}
-
-String GetCurrentTimezone() {
-  std::unique_ptr<icu::TimeZone> timezone(icu::TimeZone::createDefault());
-  icu::UnicodeString unicode_timezone_id;
-  timezone->getID(unicode_timezone_id);
-  return String(icu::toUCharPtr(unicode_timezone_id.getBuffer()),
-                static_cast<unsigned>(unicode_timezone_id.length()));
+  return true;
 }
 
 }  // namespace
 
 TimeZoneController::TimeZoneController() {
   DCHECK(IsMainThread());
-  host_timezone_id_ = GetCurrentTimezone();
+  host_timezone_id_ = GetCurrentTimezoneId();
 }
 
 TimeZoneController::~TimeZoneController() = default;
@@ -93,7 +103,10 @@
     return nullptr;
   }
 
-  SetIcuTimeZoneAndNotifyV8(timezone_id);
+  if (!SetIcuTimeZoneAndNotifyV8(timezone_id)) {
+    VLOG(1) << "Invalid override timezone id: " << timezone_id;
+    return nullptr;
+  }
 
   instance().has_timezone_id_override_ = true;
 
@@ -101,6 +114,11 @@
 }
 
 // static
+bool TimeZoneController::HasTimeZoneOverride() {
+  return instance().has_timezone_id_override_;
+}
+
+// static
 void TimeZoneController::ClearTimeZoneOverride() {
   DCHECK(instance().has_timezone_id_override_);
 
diff --git a/third_party/blink/renderer/core/timezone/timezone_controller.h b/third_party/blink/renderer/core/timezone/timezone_controller.h
index 86d9d01..89978bd 100644
--- a/third_party/blink/renderer/core/timezone/timezone_controller.h
+++ b/third_party/blink/renderer/core/timezone/timezone_controller.h
@@ -41,6 +41,8 @@
   static std::unique_ptr<TimeZoneOverride> SetTimeZoneOverride(
       const String& timezone_id);
 
+  static bool HasTimeZoneOverride();
+
  private:
   TimeZoneController();
   static TimeZoneController& instance();
diff --git a/third_party/blink/renderer/modules/accessibility/ax_object.cc b/third_party/blink/renderer/modules/accessibility/ax_object.cc
index 549315c..0a50bde 100644
--- a/third_party/blink/renderer/modules/accessibility/ax_object.cc
+++ b/third_party/blink/renderer/modules/accessibility/ax_object.cc
@@ -1211,6 +1211,11 @@
   if (!GetNode())
     return false;
 
+  // Disallow inert nodes from the tree to ensure the dialog is always the
+  // first child of the root.
+  if (GetNode()->IsInert())
+    return false;
+
   // If the node is part of the user agent shadow dom, or has the explicit
   // internal Role::kIgnored, they aren't interesting for paragraph navigation
   // or LabelledBy/DescribedBy relationships.
diff --git a/third_party/blink/renderer/modules/cache_storage/cache_test.cc b/third_party/blink/renderer/modules/cache_storage/cache_test.cc
index 6366db2..6395810 100644
--- a/third_party/blink/renderer/modules/cache_storage/cache_test.cc
+++ b/third_party/blink/renderer/modules/cache_storage/cache_test.cc
@@ -22,6 +22,7 @@
 #include "third_party/blink/renderer/bindings/core/v8/script_function.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
+#include "third_party/blink/renderer/bindings/core/v8/script_promise_tester.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_value.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_binding_for_core.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_request.h"
@@ -303,12 +304,10 @@
 
   // Convenience methods for testing the returned promises.
   ScriptValue GetRejectValue(ScriptPromise& promise) {
-    ScriptValue on_reject;
-    promise.Then(UnreachableFunction::Create(GetScriptState()),
-                 TestFunction::Create(GetScriptState(), &on_reject));
-    v8::MicrotasksScope::PerformCheckpoint(GetIsolate());
-    test::RunPendingTasks();
-    return on_reject;
+    ScriptPromiseTester tester(GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    EXPECT_TRUE(tester.IsRejected());
+    return tester.Value();
   }
 
   std::string GetRejectString(ScriptPromise& promise) {
@@ -320,12 +319,10 @@
   }
 
   ScriptValue GetResolveValue(ScriptPromise& promise) {
-    ScriptValue on_resolve;
-    promise.Then(TestFunction::Create(GetScriptState(), &on_resolve),
-                 UnreachableFunction::Create(GetScriptState()));
-    v8::MicrotasksScope::PerformCheckpoint(GetIsolate());
-    test::RunPendingTasks();
-    return on_resolve;
+    ScriptPromiseTester tester(GetScriptState(), promise);
+    tester.WaitUntilSettled();
+    EXPECT_TRUE(tester.IsFulfilled());
+    return tester.Value();
   }
 
   std::string GetResolveString(ScriptPromise& promise) {
@@ -337,48 +334,6 @@
   }
 
  private:
-  // A ScriptFunction that creates a test failure if it is ever called.
-  class UnreachableFunction : public ScriptFunction {
-   public:
-    static v8::Local<v8::Function> Create(ScriptState* script_state) {
-      UnreachableFunction* self =
-          MakeGarbageCollected<UnreachableFunction>(script_state);
-      return self->BindToV8Function();
-    }
-
-    UnreachableFunction(ScriptState* script_state)
-        : ScriptFunction(script_state) {}
-
-    ScriptValue Call(ScriptValue value) override {
-      ADD_FAILURE() << "Unexpected call to a null ScriptFunction.";
-      return value;
-    }
-  };
-
-  // A ScriptFunction that saves its parameter; used by tests to assert on
-  // correct values being passed.
-  class TestFunction : public ScriptFunction {
-   public:
-    static v8::Local<v8::Function> Create(ScriptState* script_state,
-                                          ScriptValue* out_value) {
-      TestFunction* self =
-          MakeGarbageCollected<TestFunction>(script_state, out_value);
-      return self->BindToV8Function();
-    }
-
-    TestFunction(ScriptState* script_state, ScriptValue* out_value)
-        : ScriptFunction(script_state), value_(out_value) {}
-
-    ScriptValue Call(ScriptValue value) override {
-      DCHECK(!value.IsEmpty());
-      *value_ = value;
-      return value;
-    }
-
-   private:
-    ScriptValue* value_;
-  };
-
   std::unique_ptr<ErrorCacheForTests> cache_;
   std::unique_ptr<mojo::AssociatedReceiver<mojom::blink::CacheStorageCache>>
       receiver_;
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
index 9fd088b..91ea1cee 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.cc
@@ -106,13 +106,12 @@
 }
 
 void WebEmbeddedWorkerImpl::StartWorkerContext(
-    const WebEmbeddedWorkerStartData& data,
+    std::unique_ptr<WebEmbeddedWorkerStartData> worker_start_data,
     std::unique_ptr<WebServiceWorkerInstalledScriptsManagerParams>
         installed_scripts_manager_params,
     mojo::ScopedMessagePipeHandle content_settings_handle,
     scoped_refptr<base::SingleThreadTaskRunner> initiator_thread_task_runner) {
   DCHECK(!asked_to_terminate_);
-  worker_start_data_ = data;
 
   std::unique_ptr<ServiceWorkerInstalledScriptsManager>
       installed_scripts_manager;
@@ -144,17 +143,15 @@
   // we should fix, but we're taking this shortcut for the prototype.
   //
   // https://crbug.com/590714
-  KURL script_url = worker_start_data_.script_url;
-  worker_start_data_.address_space = network::mojom::IPAddressSpace::kPublic;
+  KURL script_url = worker_start_data->script_url;
+  worker_start_data->address_space = network::mojom::IPAddressSpace::kPublic;
   if (network_utils::IsReservedIPAddress(script_url.Host()))
-    worker_start_data_.address_space = network::mojom::IPAddressSpace::kPrivate;
+    worker_start_data->address_space = network::mojom::IPAddressSpace::kPrivate;
   if (SecurityOrigin::Create(script_url)->IsLocalhost())
-    worker_start_data_.address_space = network::mojom::IPAddressSpace::kLocal;
+    worker_start_data->address_space = network::mojom::IPAddressSpace::kLocal;
 
-  devtools_worker_token_ = data.devtools_worker_token;
-  wait_for_debugger_mode_ = worker_start_data_.wait_for_debugger_mode;
   StartWorkerThread(
-      std::move(installed_scripts_manager),
+      std::move(worker_start_data), std::move(installed_scripts_manager),
       std::make_unique<ServiceWorkerContentSettingsProxy>(
           // Chrome doesn't use interface versioning.
           // TODO(falken): Is that comment about versioning correct?
@@ -178,6 +175,7 @@
 }
 
 void WebEmbeddedWorkerImpl::StartWorkerThread(
+    std::unique_ptr<WebEmbeddedWorkerStartData> worker_start_data,
     std::unique_ptr<ServiceWorkerInstalledScriptsManager>
         installed_scripts_manager,
     std::unique_ptr<ServiceWorkerContentSettingsProxy> content_settings_proxy,
@@ -191,7 +189,7 @@
   // appropriate Document. See comment in CreateFetchClientSettingsObject() for
   // details.
   scoped_refptr<const SecurityOrigin> starter_origin =
-      SecurityOrigin::Create(worker_start_data_.script_url);
+      SecurityOrigin::Create(worker_start_data->script_url);
   // This roughly equals to shadow document's IsSecureContext() as a shadow
   // document have a frame with no parent.
   // See also Document::InitSecureContextState().
@@ -223,22 +221,22 @@
 
   bool is_script_installed =
       installed_scripts_manager && installed_scripts_manager->IsScriptInstalled(
-                                       worker_start_data_.script_url);
+                                       worker_start_data->script_url);
 
   // We don't have to set ContentSecurityPolicy and ReferrerPolicy. They're
   // served by the worker script loader or the installed scripts manager on the
   // worker thread.
   global_scope_creation_params = std::make_unique<GlobalScopeCreationParams>(
-      worker_start_data_.script_url, worker_start_data_.script_type,
+      worker_start_data->script_url, worker_start_data->script_type,
       OffMainThreadWorkerScriptFetchOption::kEnabled, global_scope_name,
-      worker_start_data_.user_agent, std::move(web_worker_fetch_context),
+      worker_start_data->user_agent, std::move(web_worker_fetch_context),
       Vector<CSPHeaderAndType>(), network::mojom::ReferrerPolicy::kDefault,
       starter_origin.get(), starter_secure_context, starter_https_state,
       nullptr /* worker_clients */, std::move(content_settings_proxy),
       base::nullopt /* response_address_space */,
-      nullptr /* OriginTrialTokens */, devtools_worker_token_,
+      nullptr /* OriginTrialTokens */, worker_start_data->devtools_worker_token,
       std::move(worker_settings),
-      static_cast<V8CacheOptions>(worker_start_data_.v8_cache_options),
+      static_cast<V8CacheOptions>(worker_start_data->v8_cache_options),
       nullptr /* worklet_module_respones_map */,
       std::move(interface_provider_info_), std::move(browser_interface_broker_),
       BeginFrameProviderParams(), nullptr /* parent_feature_policy */,
@@ -255,9 +253,11 @@
       initiator_thread_task_runner);
 
   auto devtools_params = std::make_unique<WorkerDevToolsParams>();
-  devtools_params->devtools_worker_token = devtools_worker_token_;
+  devtools_params->devtools_worker_token =
+      worker_start_data->devtools_worker_token;
   devtools_params->wait_for_debugger =
-      wait_for_debugger_mode_ == WebEmbeddedWorkerStartData::kWaitForDebugger;
+      worker_start_data->wait_for_debugger_mode ==
+      WebEmbeddedWorkerStartData::kWaitForDebugger;
   mojo::PendingRemote<mojom::blink::DevToolsAgent> devtools_agent_remote;
   devtools_params->agent_receiver =
       devtools_agent_remote.InitWithNewPipeAndPassReceiver();
@@ -272,36 +272,38 @@
   // If this is an installed service worker, the installed script will be read
   // from the service worker script storage on the worker thread.
   if (is_script_installed) {
-    switch (worker_start_data_.script_type) {
+    switch (worker_start_data->script_type) {
       case mojom::ScriptType::kClassic:
         worker_thread_->RunInstalledClassicScript(
-            worker_start_data_.script_url, v8_inspector::V8StackTraceId());
+            worker_start_data->script_url, v8_inspector::V8StackTraceId());
         break;
       case mojom::ScriptType::kModule:
         worker_thread_->RunInstalledModuleScript(
-            worker_start_data_.script_url,
-            CreateFetchClientSettingsObjectData(starter_origin.get(),
-                                                starter_https_state),
+            worker_start_data->script_url,
+            CreateFetchClientSettingsObjectData(
+                worker_start_data->script_url, starter_origin.get(),
+                starter_https_state, worker_start_data->address_space),
             network::mojom::CredentialsMode::kOmit);
         break;
     }
   } else {
     std::unique_ptr<CrossThreadFetchClientSettingsObjectData>
         fetch_client_setting_object_data = CreateFetchClientSettingsObjectData(
-            starter_origin.get(), starter_https_state);
+            worker_start_data->script_url, starter_origin.get(),
+            starter_https_state, worker_start_data->address_space);
 
     // If this is a new (not installed) service worker, we are in the Update
     // algorithm here:
     // > Switching on job's worker type, run these substeps with the following
     // > options:
     // https://w3c.github.io/ServiceWorker/#update-algorithm
-    switch (worker_start_data_.script_type) {
+    switch (worker_start_data->script_type) {
       // > "classic": Fetch a classic worker script given job's serialized
       // > script url, job's client, "serviceworker", and the to-be-created
       // > environment settings object for this service worker.
       case mojom::ScriptType::kClassic:
         worker_thread_->FetchAndRunClassicScript(
-            worker_start_data_.script_url,
+            worker_start_data->script_url,
             std::move(fetch_client_setting_object_data),
             nullptr /* outside_resource_timing_notifier */,
             v8_inspector::V8StackTraceId());
@@ -312,7 +314,7 @@
       // > to-be-created environment settings object for this service worker.
       case mojom::ScriptType::kModule:
         worker_thread_->FetchAndRunModuleScript(
-            worker_start_data_.script_url,
+            worker_start_data->script_url,
             std::move(fetch_client_setting_object_data),
             nullptr /* outside_resource_timing_notifier */,
             network::mojom::CredentialsMode::kOmit);
@@ -327,10 +329,12 @@
 
 std::unique_ptr<CrossThreadFetchClientSettingsObjectData>
 WebEmbeddedWorkerImpl::CreateFetchClientSettingsObjectData(
+    const KURL& script_url,
     const SecurityOrigin* security_origin,
-    const HttpsState& https_state) {
+    const HttpsState& https_state,
+    network::mojom::IPAddressSpace address_space) {
   // TODO(crbug.com/967265): Currently we create an incomplete outside settings
-  // object from |worker_start_data_| but we should create a proper outside
+  // object from |worker_start_data| but we should create a proper outside
   // settings objects depending on the situation. For new worker case, this
   // should be the Document that called navigator.serviceWorker.register(). For
   // ServiceWorkerRegistration#update() case, it should be the Document that
@@ -339,14 +343,12 @@
   // To get a correct settings, we need to make a way to pass the settings
   // object over mojo IPCs.
 
-  const KURL& script_url = worker_start_data_.script_url;
   return std::make_unique<CrossThreadFetchClientSettingsObjectData>(
       script_url.Copy() /* global_object_url */,
       script_url.Copy() /* base_url */, security_origin->IsolatedCopy(),
       network::mojom::ReferrerPolicy::kDefault,
       script_url.GetString().IsolatedCopy() /* outgoing_referrer */,
-      https_state, AllowedByNosniff::MimeTypeCheck::kLax,
-      worker_start_data_.address_space,
+      https_state, AllowedByNosniff::MimeTypeCheck::kLax, address_space,
       kBlockAllMixedContent /* insecure_requests_policy */,
       FetchClientSettingsObject::InsecureNavigationsSet(),
       false /* mixed_autoupgrade_opt_out */);
diff --git a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
index 528a3b2..0dd19b0 100644
--- a/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
+++ b/third_party/blink/renderer/modules/exported/web_embedded_worker_impl.h
@@ -70,7 +70,7 @@
 
   // WebEmbeddedWorker overrides.
   void StartWorkerContext(
-      const WebEmbeddedWorkerStartData&,
+      std::unique_ptr<WebEmbeddedWorkerStartData>,
       std::unique_ptr<WebServiceWorkerInstalledScriptsManagerParams>,
       mojo::ScopedMessagePipeHandle content_settings_handle,
       scoped_refptr<base::SingleThreadTaskRunner> initiator_thread_task_runner)
@@ -82,6 +82,7 @@
 
  private:
   void StartWorkerThread(
+      std::unique_ptr<WebEmbeddedWorkerStartData> worker_start_data,
       std::unique_ptr<ServiceWorkerInstalledScriptsManager>,
       std::unique_ptr<ServiceWorkerContentSettingsProxy>,
       scoped_refptr<base::SingleThreadTaskRunner> initiator_thread_task_runner);
@@ -89,9 +90,10 @@
   // Creates a cross-thread copyable outside settings object for top-level
   // worker script fetch.
   std::unique_ptr<CrossThreadFetchClientSettingsObjectData>
-  CreateFetchClientSettingsObjectData(const SecurityOrigin*, const HttpsState&);
-
-  WebEmbeddedWorkerStartData worker_start_data_;
+  CreateFetchClientSettingsObjectData(const KURL& script_url,
+                                      const SecurityOrigin*,
+                                      const HttpsState&,
+                                      network::mojom::IPAddressSpace);
 
   // Client must remain valid through the entire life time of the worker.
   WebServiceWorkerContextClient* const worker_context_client_;
@@ -100,12 +102,6 @@
 
   bool asked_to_terminate_ = false;
 
-  // Unique worker token used by DevTools to attribute different instrumentation
-  // to the same worker.
-  base::UnguessableToken devtools_worker_token_;
-  WebEmbeddedWorkerStartData::WaitForDebuggerMode wait_for_debugger_mode_ =
-      WebEmbeddedWorkerStartData::kDontWaitForDebugger;
-
   mojo::PendingRemote<mojom::blink::CacheStorage> cache_storage_remote_;
 
   service_manager::mojom::blink::InterfaceProviderPtrInfo
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
index 23e7404..d254f259 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/geometry/dom_rect.h"
@@ -73,9 +74,8 @@
   return true;
 }
 
-WebLocalizedString::Name MediaControlCastButtonElement::GetOverflowStringName()
-    const {
-  return WebLocalizedString::kOverflowMenuCast;
+int MediaControlCastButtonElement::GetOverflowStringId() const {
+  return IDS_MEDIA_OVERFLOW_MENU_CAST;
 }
 
 bool MediaControlCastButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.h
index 0b0a774a..9bc21a9 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_cast_button_element.h
@@ -26,7 +26,7 @@
 
   // MediaControlInputElement overrides.
   bool WillRespondToMouseClickEvents() final;
-  WebLocalizedString::Name GetOverflowStringName() const final;
+  int GetOverflowStringId() const final;
   bool HasOverflowButton() const final;
 
  protected:
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
index 5f8267c..0fe04ab 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/frame/local_frame_client.h"
 #include "third_party/blink/renderer/core/frame/settings.h"
@@ -46,9 +47,8 @@
   return true;
 }
 
-WebLocalizedString::Name
-MediaControlDownloadButtonElement::GetOverflowStringName() const {
-  return WebLocalizedString::kOverflowMenuDownload;
+int MediaControlDownloadButtonElement::GetOverflowStringId() const {
+  return IDS_MEDIA_OVERFLOW_MENU_DOWNLOAD;
 }
 
 bool MediaControlDownloadButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.h
index a499019..9333480 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_download_button_element.h
@@ -23,7 +23,7 @@
 
   // MediaControlInputElement overrides.
   // TODO(mlamouri): add WillRespondToMouseClickEvents
-  WebLocalizedString::Name GetOverflowStringName() const final;
+  int GetOverflowStringId() const final;
   bool HasOverflowButton() const final;
   bool IsControlPanelButton() const final;
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
index 0ba85ffc..d241534 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/frame/settings.h"
@@ -41,11 +42,10 @@
   return true;
 }
 
-WebLocalizedString::Name
-MediaControlFullscreenButtonElement::GetOverflowStringName() const {
+int MediaControlFullscreenButtonElement::GetOverflowStringId() const {
   if (MediaElement().IsFullscreen())
-    return WebLocalizedString::kOverflowMenuExitFullscreen;
-  return WebLocalizedString::kOverflowMenuEnterFullscreen;
+    return IDS_MEDIA_OVERFLOW_MENU_EXIT_FULLSCREEN;
+  return IDS_MEDIA_OVERFLOW_MENU_ENTER_FULLSCREEN;
 }
 
 bool MediaControlFullscreenButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.h
index 12b5099..d8aa1ae 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_fullscreen_button_element.h
@@ -22,7 +22,7 @@
 
   // MediaControlInputElement overrides.
   bool WillRespondToMouseClickEvents() override;
-  WebLocalizedString::Name GetOverflowStringName() const override;
+  int GetOverflowStringId() const override;
   bool HasOverflowButton() const override;
   bool IsControlPanelButton() const override;
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
index 705b56e5..9ed5969 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h"
 
 #include "third_party/blink/public/platform/web_size.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/css/css_property_names.h"
 #include "third_party/blink/renderer/core/css_value_keywords.h"
 #include "third_party/blink/renderer/core/dom/dom_token_list.h"
@@ -186,10 +187,9 @@
     : HTMLInputElement(media_controls.GetDocument(), CreateElementFlags()),
       MediaControlElementBase(media_controls, this) {}
 
-WebLocalizedString::Name MediaControlInputElement::GetOverflowStringName()
-    const {
+int MediaControlInputElement::GetOverflowStringId() const {
   NOTREACHED();
-  return WebLocalizedString::kAXAMPMFieldText;
+  return IDS_AX_AM_PM_FIELD_TEXT;
 }
 
 void MediaControlInputElement::UpdateShownState() {
@@ -256,7 +256,7 @@
 }
 
 String MediaControlInputElement::GetOverflowMenuString() const {
-  return MediaElement().GetLocale().QueryString(GetOverflowStringName());
+  return MediaElement().GetLocale().QueryString(GetOverflowStringId());
 }
 
 String MediaControlInputElement::GetOverflowMenuSubtitleString() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h
index 54970c0..8f39a18 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h
@@ -49,10 +49,10 @@
   // will be used as a suffix for histograms.
   virtual const char* GetNameForHistograms() const = 0;
 
-  // Returns a string representation of the media control element.
-  // Subclasses should override this method to return the string representation
+  // Returns a string resource id of the media control element.
+  // Subclasses should override this method to return the string resource id
   // of the overflow button.
-  virtual WebLocalizedString::Name GetOverflowStringName() const;
+  virtual int GetOverflowStringId() const;
 
   // Implements a default event handler to record interaction on click.
   void DefaultEventHandler(Event&) override;
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
index 20ae4a4..f6fa3ce 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_input_element_test.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_input_element.h"
 
 #include "testing/gtest/include/gtest/gtest.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/html/media/html_video_element.h"
@@ -44,8 +45,8 @@
                                : "MediaControlInputElementImpl";
   }
 
-  WebLocalizedString::Name GetOverflowStringName() const final {
-    return WebLocalizedString::kOverflowMenuDownload;
+  int GetOverflowStringId() const final {
+    return IDS_MEDIA_OVERFLOW_MENU_DOWNLOAD;
   }
 };
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
index 39afbe98..91c6ead 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/input_type_names.h"
@@ -39,11 +40,10 @@
   MediaControlInputElement::UpdateDisplayType();
 }
 
-WebLocalizedString::Name MediaControlMuteButtonElement::GetOverflowStringName()
-    const {
+int MediaControlMuteButtonElement::GetOverflowStringId() const {
   if (MediaElement().muted())
-    return WebLocalizedString::kOverflowMenuUnmute;
-  return WebLocalizedString::kOverflowMenuMute;
+    return IDS_MEDIA_OVERFLOW_MENU_UNMUTE;
+  return IDS_MEDIA_OVERFLOW_MENU_MUTE;
 }
 
 bool MediaControlMuteButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.h
index f9fbeb82..70feb7e2 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_mute_button_element.h
@@ -19,7 +19,7 @@
   // MediaControlInputElement overrides.
   bool WillRespondToMouseClickEvents() override;
   void UpdateDisplayType() override;
-  WebLocalizedString::Name GetOverflowStringName() const override;
+  int GetOverflowStringId() const override;
   bool HasOverflowButton() const override;
   bool IsControlPanelButton() const override;
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
index 77bb081..c33f481f 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/html/media/html_media_source.h"
@@ -51,16 +52,15 @@
   MediaControlInputElement::UpdateDisplayType();
 }
 
-WebLocalizedString::Name
-MediaControlPictureInPictureButtonElement::GetOverflowStringName() const {
+int MediaControlPictureInPictureButtonElement::GetOverflowStringId() const {
   DCHECK(MediaElement().IsHTMLVideoElement());
   bool isInPictureInPicture =
       PictureInPictureController::IsElementInPictureInPicture(
           &ToHTMLVideoElement(MediaElement()));
 
   return isInPictureInPicture
-             ? WebLocalizedString::kOverflowMenuExitPictureInPicture
-             : WebLocalizedString::kOverflowMenuEnterPictureInPicture;
+             ? IDS_MEDIA_OVERFLOW_MENU_EXIT_PICTURE_IN_PICTURE
+             : IDS_MEDIA_OVERFLOW_MENU_ENTER_PICTURE_IN_PICTURE;
 }
 
 bool MediaControlPictureInPictureButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h
index 54a30d5..c23a2aa 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_picture_in_picture_button_element.h
@@ -20,7 +20,7 @@
   // MediaControlInputElement:
   bool WillRespondToMouseClickEvents() override;
   void UpdateDisplayType() override;
-  WebLocalizedString::Name GetOverflowStringName() const override;
+  int GetOverflowStringId() const override;
   bool HasOverflowButton() const override;
   bool IsControlPanelButton() const override;
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
index c91f1de..27001b8 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.cc
@@ -5,6 +5,7 @@
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.h"
 
 #include "third_party/blink/public/platform/platform.h"
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/input_type_names.h"
@@ -36,11 +37,10 @@
   MediaControlInputElement::UpdateDisplayType();
 }
 
-WebLocalizedString::Name MediaControlPlayButtonElement::GetOverflowStringName()
-    const {
+int MediaControlPlayButtonElement::GetOverflowStringId() const {
   if (MediaElement().paused())
-    return WebLocalizedString::kOverflowMenuPlay;
-  return WebLocalizedString::kOverflowMenuPause;
+    return IDS_MEDIA_OVERFLOW_MENU_PLAY;
+  return IDS_MEDIA_OVERFLOW_MENU_PAUSE;
 }
 
 bool MediaControlPlayButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.h
index 1248bf8..4fea9d5 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_play_button_element.h
@@ -19,7 +19,7 @@
   // MediaControlInputElement overrides.
   bool WillRespondToMouseClickEvents() override;
   void UpdateDisplayType() override;
-  WebLocalizedString::Name GetOverflowStringName() const override;
+  int GetOverflowStringId() const override;
   bool HasOverflowButton() const override;
   bool IsControlPanelButton() const override;
 
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc b/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
index 8fcd4313..f199c42 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.cc
@@ -4,6 +4,7 @@
 
 #include "third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.h"
 
+#include "third_party/blink/public/strings/grit/blink_strings.h"
 #include "third_party/blink/renderer/core/dom/events/event.h"
 #include "third_party/blink/renderer/core/html/media/html_media_element.h"
 #include "third_party/blink/renderer/core/html/track/text_track.h"
@@ -70,9 +71,8 @@
   MediaControlInputElement::UpdateDisplayType();
 }
 
-WebLocalizedString::Name
-MediaControlToggleClosedCaptionsButtonElement::GetOverflowStringName() const {
-  return WebLocalizedString::kOverflowMenuCaptions;
+int MediaControlToggleClosedCaptionsButtonElement::GetOverflowStringId() const {
+  return IDS_MEDIA_OVERFLOW_MENU_CLOSED_CAPTIONS;
 }
 
 bool MediaControlToggleClosedCaptionsButtonElement::HasOverflowButton() const {
diff --git a/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.h b/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.h
index 470b3c2..e9dcf0d 100644
--- a/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.h
+++ b/third_party/blink/renderer/modules/media_controls/elements/media_control_toggle_closed_captions_button_element.h
@@ -21,7 +21,7 @@
   // MediaControlInputElement overrides.
   bool WillRespondToMouseClickEvents() override;
   void UpdateDisplayType() override;
-  WebLocalizedString::Name GetOverflowStringName() const override;
+  int GetOverflowStringId() const override;
   bool HasOverflowButton() const override;
   String GetOverflowMenuSubtitleString() const override;
 
diff --git a/third_party/blink/renderer/modules/permissions/permission_utils.cc b/third_party/blink/renderer/modules/permissions/permission_utils.cc
index c61535b..e03c047 100644
--- a/third_party/blink/renderer/modules/permissions/permission_utils.cc
+++ b/third_party/blink/renderer/modules/permissions/permission_utils.cc
@@ -6,7 +6,7 @@
 
 #include <utility>
 
-#include "services/service_manager/public/cpp/interface_provider.h"
+#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/renderer/core/dom/document.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/core/frame/local_frame.h"
@@ -25,8 +25,8 @@
 void ConnectToPermissionService(
     ExecutionContext* execution_context,
     mojo::PendingReceiver<mojom::blink::PermissionService> receiver) {
-  if (auto* interface_provider = execution_context->GetInterfaceProvider())
-    interface_provider->GetInterface(std::move(receiver));
+  execution_context->GetBrowserInterfaceBroker().GetInterface(
+      std::move(receiver));
 }
 
 String PermissionStatusToString(mojom::blink::PermissionStatus status) {
diff --git a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
index ed2e17c..bee279ef7 100644
--- a/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
+++ b/third_party/blink/renderer/modules/service_worker/web_embedded_worker_impl_test.cc
@@ -200,20 +200,23 @@
         /*interface_provider_info=*/nullptr,
         /*browser_interface_broker=*/mojo::NullRemote());
 
-    WebURL script_url =
-        url_test_helpers::ToKURL("https://www.example.com/sw.js");
-    WebURLResponse response(script_url);
+    script_url_ = url_test_helpers::ToKURL("https://www.example.com/sw.js");
+    WebURLResponse response(script_url_);
     response.SetMimeType("text/javascript");
     response.SetHttpStatusCode(200);
-    Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(script_url,
+    Platform::Current()->GetURLLoaderMockFactory()->RegisterURL(script_url_,
                                                                 response, "");
+  }
 
-    start_data_.script_url = script_url;
-    start_data_.user_agent = WebString("dummy user agent");
-    start_data_.script_type = mojom::ScriptType::kClassic;
-    start_data_.wait_for_debugger_mode =
+  std::unique_ptr<WebEmbeddedWorkerStartData> CreateStartData() {
+    auto start_data = std::make_unique<WebEmbeddedWorkerStartData>();
+    start_data->script_url = script_url_;
+    start_data->user_agent = WebString("dummy user agent");
+    start_data->script_type = mojom::ScriptType::kClassic;
+    start_data->wait_for_debugger_mode =
         WebEmbeddedWorkerStartData::kDontWaitForDebugger;
-    start_data_.v8_cache_options = WebSettings::V8CacheOptions::kDefault;
+    start_data->v8_cache_options = WebSettings::V8CacheOptions::kDefault;
+    return start_data;
   }
 
   void TearDown() override {
@@ -222,7 +225,7 @@
         ->UnregisterAllURLsAndClearMemoryCache();
   }
 
-  WebEmbeddedWorkerStartData start_data_;
+  WebURL script_url_;
   std::unique_ptr<MockServiceWorkerContextClient> mock_client_;
   std::unique_ptr<WebEmbeddedWorkerImpl> worker_;
 };
@@ -231,7 +234,7 @@
 
 TEST_F(WebEmbeddedWorkerImplTest, TerminateSoonAfterStart) {
   worker_->StartWorkerContext(
-      start_data_,
+      CreateStartData(),
       /*installed_scripts_manager_params=*/nullptr,
       /*content_settings_proxy=*/mojo::ScopedMessagePipeHandle(),
       Thread::Current()->GetTaskRunner());
@@ -243,10 +246,11 @@
 }
 
 TEST_F(WebEmbeddedWorkerImplTest, TerminateWhileWaitingForDebugger) {
-  start_data_.wait_for_debugger_mode =
+  std::unique_ptr<WebEmbeddedWorkerStartData> start_data = CreateStartData();
+  start_data->wait_for_debugger_mode =
       WebEmbeddedWorkerStartData::kWaitForDebugger;
   worker_->StartWorkerContext(
-      start_data_,
+      std::move(start_data),
       /*installed_scripts_manager_params=*/nullptr,
       /*content_settings_proxy=*/mojo::ScopedMessagePipeHandle(),
       Thread::Current()->GetTaskRunner());
@@ -259,7 +263,7 @@
 TEST_F(WebEmbeddedWorkerImplTest, TerminateWhileLoadingScript) {
   // Load the shadow page.
   worker_->StartWorkerContext(
-      start_data_,
+      CreateStartData(),
       /*installed_scripts_manager_params=*/nullptr,
       /*content_settings_proxy=*/mojo::ScopedMessagePipeHandle(),
       Thread::Current()->GetTaskRunner());
@@ -280,11 +284,12 @@
   ResourceError error = ResourceError::Failure(script_url);
   Platform::Current()->GetURLLoaderMockFactory()->RegisterErrorURL(
       script_url, response, error);
-  start_data_.script_url = script_url;
+  std::unique_ptr<WebEmbeddedWorkerStartData> start_data = CreateStartData();
+  start_data->script_url = script_url;
 
   // Start worker and load the script.
   worker_->StartWorkerContext(
-      start_data_,
+      std::move(start_data),
       /*installed_scripts_manager_params=*/nullptr,
       /*content_settings_proxy=*/mojo::ScopedMessagePipeHandle(),
       Thread::Current()->GetTaskRunner());
diff --git a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.cc b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.cc
index b0099b16..ec0e3e5 100644
--- a/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.cc
+++ b/third_party/blink/renderer/modules/wake_lock/wake_lock_test_utils.cc
@@ -11,6 +11,7 @@
 #include "base/run_loop.h"
 #include "mojo/public/cpp/bindings/pending_receiver.h"
 #include "services/service_manager/public/cpp/interface_provider.h"
+#include "third_party/blink/public/common/browser_interface_broker_proxy.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_function.h"
 #include "third_party/blink/renderer/bindings/core/v8/v8_dom_exception.h"
 #include "third_party/blink/renderer/core/dom/document.h"
@@ -253,7 +254,7 @@
       mojom::blink::WakeLockService::Name_,
       WTF::BindRepeating(&MockWakeLockService::BindRequest,
                          WTF::Unretained(mock_wake_lock_service)));
-  test_api.SetBinderForName(
+  GetDocument()->GetBrowserInterfaceBroker().SetBinderForTesting(
       mojom::blink::PermissionService::Name_,
       WTF::BindRepeating(&MockPermissionService::BindRequest,
                          WTF::Unretained(&permission_service_)));
diff --git a/third_party/blink/renderer/modules/webgpu/gpu.cc b/third_party/blink/renderer/modules/webgpu/gpu.cc
index e8fdeea..75c6433 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu.cc
@@ -65,16 +65,14 @@
   auto* resolver = MakeGarbageCollected<ScriptPromiseResolver>(script_state);
   ScriptPromise promise = resolver->Promise();
 
-  if (options->powerPreference()) {
-    ExecutionContext::From(script_state)
-        ->AddConsoleMessage(ConsoleMessage::Create(
-            mojom::ConsoleMessageSource::kJavaScript,
-            mojom::ConsoleMessageLevel::kWarning,
-            "The powerPreference option is not implemented yet."));
+  // For now we choose kHighPerformance by default.
+  gpu::webgpu::PowerPreference power_preference =
+      gpu::webgpu::PowerPreference::kHighPerformance;
+  if (options->powerPreference() == "low-power") {
+    power_preference = gpu::webgpu::PowerPreference::kLowPower;
   }
-
-  // TODO(enga): Request the adapter from the WebGPUInterface.
-  GPUAdapter* adapter = GPUAdapter::Create("Default", dawn_control_client_);
+  GPUAdapter* adapter =
+      GPUAdapter::Create("Default", power_preference, dawn_control_client_);
 
   resolver->Resolve(adapter);
   return promise;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
index 4e89c55..4c262c6 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.cc
@@ -6,20 +6,26 @@
 
 #include "third_party/blink/renderer/bindings/core/v8/script_promise_resolver.h"
 #include "third_party/blink/renderer/modules/webgpu/gpu_device.h"
+#include "third_party/blink/renderer/modules/webgpu/gpu_request_adapter_options.h"
 
 namespace blink {
 
 // static
 GPUAdapter* GPUAdapter::Create(
     const String& name,
+    gpu::webgpu::PowerPreference power_preference,
     scoped_refptr<DawnControlClientHolder> dawn_control_client) {
-  return MakeGarbageCollected<GPUAdapter>(name, std::move(dawn_control_client));
+  return MakeGarbageCollected<GPUAdapter>(name, power_preference,
+                                          std::move(dawn_control_client));
 }
 
 GPUAdapter::GPUAdapter(
     const String& name,
+    gpu::webgpu::PowerPreference power_preference,
     scoped_refptr<DawnControlClientHolder> dawn_control_client)
-    : DawnObjectBase(std::move(dawn_control_client)), name_(name) {}
+    : DawnObjectBase(dawn_control_client), name_(name) {
+  dawn_control_client->GetInterface()->RequestAdapter(power_preference);
+}
 
 const String& GPUAdapter::name() const {
   return name_;
diff --git a/third_party/blink/renderer/modules/webgpu/gpu_adapter.h b/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
index b6f1788..afbed689 100644
--- a/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
+++ b/third_party/blink/renderer/modules/webgpu/gpu_adapter.h
@@ -6,6 +6,7 @@
 #define THIRD_PARTY_BLINK_RENDERER_MODULES_WEBGPU_GPU_ADAPTER_H_
 
 #include "base/memory/scoped_refptr.h"
+#include "gpu/command_buffer/client/webgpu_interface.h"
 #include "third_party/blink/renderer/bindings/core/v8/script_promise.h"
 #include "third_party/blink/renderer/core/execution_context/execution_context.h"
 #include "third_party/blink/renderer/modules/webgpu/dawn_object.h"
@@ -22,8 +23,10 @@
  public:
   static GPUAdapter* Create(
       const String& name,
+      gpu::webgpu::PowerPreference power_preference,
       scoped_refptr<DawnControlClientHolder> dawn_control_client);
   GPUAdapter(const String& name,
+             gpu::webgpu::PowerPreference power_preference,
              scoped_refptr<DawnControlClientHolder> dawn_control_client);
 
   const String& name() const;
diff --git a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
index 43bd95b..9cca0e5 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/harfbuzz_shaper_test.cc
@@ -1570,6 +1570,35 @@
   EXPECT_EQ(sub->NumCharacters(), 2u);
 }
 
+TEST_P(ShapeParameterTest, CopyRangeNoRuns) {
+  TextDirection direction = GetParam();
+  scoped_refptr<ShapeResult> result =
+      ShapeResult::Create(&font, 0, 2, direction);
+
+  scoped_refptr<ShapeResult> sub0 = result->SubRange(0, 1);
+  EXPECT_EQ(sub0->StartIndex(), 0u);
+  EXPECT_EQ(sub0->EndIndex(), 1u);
+  EXPECT_EQ(sub0->NumCharacters(), 1u);
+
+  scoped_refptr<ShapeResult> sub1 = result->SubRange(1, 2);
+  EXPECT_EQ(sub1->StartIndex(), 1u);
+  EXPECT_EQ(sub1->EndIndex(), 2u);
+  EXPECT_EQ(sub1->NumCharacters(), 1u);
+
+  Vector<scoped_refptr<ShapeResult>> range_results;
+  Vector<ShapeResult::ShapeRange> ranges;
+  range_results.push_back(ShapeResult::CreateEmpty(*result));
+  ranges.push_back(ShapeResult::ShapeRange{0, 1, range_results[0].get()});
+  result->CopyRanges(ranges.data(), ranges.size());
+  for (unsigned i = 0; i < ranges.size(); i++) {
+    const ShapeResult::ShapeRange& range = ranges[i];
+    const ShapeResult& result = *range_results[i];
+    EXPECT_EQ(result.StartIndex(), range.start);
+    EXPECT_EQ(result.EndIndex(), range.end);
+    EXPECT_EQ(result.NumCharacters(), range.end - range.start);
+  }
+}
+
 TEST_P(ShapeParameterTest, ShapeResultViewMissingRun) {
   TextDirection direction = GetParam();
   scoped_refptr<ShapeResult> result = CreateMissingRunResult(direction);
diff --git a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
index c436a83..3a73c9a9 100644
--- a/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
+++ b/third_party/blink/renderer/platform/fonts/shaping/shape_result.cc
@@ -1201,8 +1201,6 @@
 void ShapeResult::CopyRanges(const ShapeRange* ranges,
                              unsigned num_ranges) const {
   DCHECK_GT(num_ranges, 0u);
-  if (!runs_.size())
-    return;
 
   // Ranges are in logical order so for RTL the ranges are proccessed back to
   // front to ensure that they're in a sequential visual order with regards to
diff --git a/third_party/blink/renderer/platform/graphics/paint/paint_artifact.cc b/third_party/blink/renderer/platform/graphics/paint/paint_artifact.cc
index cc2aad3..58a1eaa2 100644
--- a/third_party/blink/renderer/platform/graphics/paint/paint_artifact.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/paint_artifact.cc
@@ -71,29 +71,23 @@
       chunk.hit_test_data->AppendTouchActionRect(hit_test.GetHitTestRect());
     }
 
-#if DCHECK_IS_ON()
-    if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
-      // Because ScrollHitTestDisplayItems force new paint chunks (see:
-      // PaintChunker::IncrementDisplayItemIndex), they should only be the first
-      // item in a paint chunk.
-      DCHECK(!item.IsScrollHitTest() || item.Equals(*items.begin()));
-    }
-#endif
-  }
-
-  if (RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled()) {
     // Because ScrollHitTestDisplayItems force new paint chunks (see:
     // PaintChunker::IncrementDisplayItemIndex), they should only be the first
     // item in a paint chunk.
-    if (items.begin()->IsScrollHitTest()) {
-      const auto& scroll_hit_test_item =
-          static_cast<const ScrollHitTestDisplayItem&>(*items.begin());
-      if (!chunk.hit_test_data)
-        chunk.hit_test_data = std::make_unique<HitTestData>();
-      chunk.hit_test_data->SetScrollHitTest(
-          scroll_hit_test_item.scroll_offset_node(),
-          scroll_hit_test_item.scroll_container_bounds());
-    }
+    DCHECK(!item.IsScrollHitTest() || item.Equals(*items.begin()));
+  }
+
+  // Because ScrollHitTestDisplayItems force new paint chunks (see:
+  // PaintChunker::IncrementDisplayItemIndex), they should only be the first
+  // item in a paint chunk.
+  if (items.begin()->IsScrollHitTest()) {
+    const auto& scroll_hit_test_item =
+        static_cast<const ScrollHitTestDisplayItem&>(*items.begin());
+    if (!chunk.hit_test_data)
+      chunk.hit_test_data = std::make_unique<HitTestData>();
+    chunk.hit_test_data->SetScrollHitTest(
+        scroll_hit_test_item.scroll_offset_node(),
+        scroll_hit_test_item.scroll_container_bounds());
   }
 
   if (known_to_be_opaque_region.contains(chunk.bounds))
diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.cc b/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.cc
index 6e1f2445..3c8cd82d 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.cc
+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.cc
@@ -18,7 +18,6 @@
     : DisplayItem(client, type, sizeof(*this)),
       scroll_offset_node_(scroll_offset_node),
       scroll_container_bounds_(scroll_container_bounds) {
-  DCHECK(RuntimeEnabledFeatures::PaintNonFastScrollableRegionsEnabled());
 #if DCHECK_IS_ON()
   if (type == DisplayItem::Type::kResizerScrollHitTest ||
       type == DisplayItem::Type::kPluginScrollHitTest) {
diff --git a/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.h b/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.h
index cd115e2..b2bfbe0 100644
--- a/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.h
+++ b/third_party/blink/renderer/platform/graphics/paint/scroll_hit_test_display_item.h
@@ -20,7 +20,6 @@
 //
 // This serves three purposes:
 // 1. Creating non-fast scrollable regions for non-composited scrollers.
-//   (When PaintNonFastScrollableRegions is enabled).
 //   Scrollable areas create a non-fast scrollable region in the
 //   non-scrolling paint property tree state. Pre-CompositeAfterPaint, we skip
 //   painting these for composited scrollers. With CompositeAfterPaint, we
@@ -28,7 +27,6 @@
 //   (see: PaintArtifactCompositor::UpdateNonFastScrollableRegions).
 //
 // 2. Creating non-fast scrollable regions for plugins and resize handles.
-//   (When PaintNonFastScrollableRegions is enabled).
 //   Plugins that have blocking event handlers and resize handles both need to
 //   prevent composited scrolling. A different display item type is used
 //   (kPluginScrollHitTest and kResizerScrollHitTest) to disambiguate multiple
diff --git a/third_party/blink/renderer/platform/runtime_enabled_features.json5 b/third_party/blink/renderer/platform/runtime_enabled_features.json5
index 706b9a1b..cc6d92d 100644
--- a/third_party/blink/renderer/platform/runtime_enabled_features.json5
+++ b/third_party/blink/renderer/platform/runtime_enabled_features.json5
@@ -1192,11 +1192,6 @@
       // Android does not have support for PagePopup
       status: {"Android": "", "default": "stable"},
     },
-    // See: https://docs.google.com/document/d/1IyYJ6bVF7KZq96b_s5NrAzGtVoBXn_LQnya9y4yT3iw/view
-    {
-      name: "PaintNonFastScrollableRegions",
-      status: "stable",
-    },
     {
       name: "PaintUnderInvalidationChecking",
       settable_from_internals: true,
diff --git a/third_party/blink/renderer/platform/testing/paint_test_configurations.h b/third_party/blink/renderer/platform/testing/paint_test_configurations.h
index fb5b973..d125cb30 100644
--- a/third_party/blink/renderer/platform/testing/paint_test_configurations.h
+++ b/third_party/blink/renderer/platform/testing/paint_test_configurations.h
@@ -15,27 +15,19 @@
   kCompositeAfterPaint = 1 << 0,
   kUnderInvalidationChecking = 1 << 1,
   kFastBorderRadius = 1 << 2,
-  kPaintNonFastScrollableRegions = 1 << 3,
 };
 
 class PaintTestConfigurations
     : public testing::WithParamInterface<unsigned>,
       private ScopedCompositeAfterPaintForTest,
       private ScopedPaintUnderInvalidationCheckingForTest,
-      private ScopedFastBorderRadiusForTest,
-      private ScopedPaintNonFastScrollableRegionsForTest {
+      private ScopedFastBorderRadiusForTest {
  public:
   PaintTestConfigurations()
       : ScopedCompositeAfterPaintForTest(GetParam() & kCompositeAfterPaint),
         ScopedPaintUnderInvalidationCheckingForTest(GetParam() &
                                                     kUnderInvalidationChecking),
-        ScopedFastBorderRadiusForTest(GetParam() & kFastBorderRadius),
-        // Because PaintNonFastScrollableRegions is implied by
-        // CompositeAfterPaint (see: runtime_eanbled_features.json5), we must
-        // enable the scoped flag for (PNFSR || CAP).
-        ScopedPaintNonFastScrollableRegionsForTest(
-            GetParam() & kPaintNonFastScrollableRegions ||
-            GetParam() & kCompositeAfterPaint) {}
+        ScopedFastBorderRadiusForTest(GetParam() & kFastBorderRadius) {}
   ~PaintTestConfigurations() {
     // Must destruct all objects before toggling back feature flags.
     WebHeap::CollectAllGarbageForTesting();
@@ -56,9 +48,8 @@
       ::testing::Values(0, kCompositeAfterPaint, kFastBorderRadius))
 
 #define INSTANTIATE_SCROLL_HIT_TEST_SUITE_P(test_class) \
-  INSTANTIATE_TEST_SUITE_P(                             \
-      All, test_class,                                  \
-      ::testing::Values(kPaintNonFastScrollableRegions, kCompositeAfterPaint))
+  INSTANTIATE_TEST_SUITE_P(All, test_class,             \
+                           ::testing::Values(0, kCompositeAfterPaint))
 
 }  // namespace blink
 
diff --git a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
index 3da70d2..d35064d 100755
--- a/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
+++ b/third_party/blink/tools/blinkpy/presubmit/audit_non_blink_usage.py
@@ -736,6 +736,7 @@
         # The WebGPU Blink module needs access to the WebGPU control
         # command buffer interface.
         'allowed': [
+            'gpu::webgpu::PowerPreference',
             'gpu::webgpu::WebGPUInterface',
         ],
     },
diff --git a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint
index c9c8b20..a6cd5e9 100644
--- a/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint
+++ b/third_party/blink/web_tests/FlagExpectations/enable-blink-features=CompositeAfterPaint
@@ -16,10 +16,6 @@
 Bug(none) virtual/threaded/printing/ [ Skip ]
 Bug(none) virtual/threaded/http/tests/devtools/tracing/ [ Skip ]
 
-# Because PaintNonFastScrollableRegions implies CompositeAfterPaint, these tests
-# have already been run as part of the non-virtual test suite.
-Bug(none) virtual/paint-non-fast-scrollable-regions/ [ Skip ]
-
 # Fail before CompositeAfterPaint but pass with it.
 crbug.com/472330 fast/borders/border-image-outset-split-inline-vertical-lr.html [ Pass ]
 crbug.com/736052 compositing/overflow/composited-scroll-with-fractional-translation.html [ Pass ]
diff --git a/third_party/blink/web_tests/TestExpectations b/third_party/blink/web_tests/TestExpectations
index 70dd45d..bef10ee4 100644
--- a/third_party/blink/web_tests/TestExpectations
+++ b/third_party/blink/web_tests/TestExpectations
@@ -6104,6 +6104,12 @@
 
 crbug.com/999209 virtual/lazyload-image/http/tests/lazyload/style-dimension.html [ Timeout ]
 
+# These tests are missing test automation
+crbug.com/998917 external/wpt/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.html [ Skip ]
+crbug.com/998917 external/wpt/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.html [ Skip ]
+crbug.com/998917 external/wpt/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.html [ Skip ]
+crbug.com/998917 external/wpt/native-file-system/native_FileSystemWriter.tentative.https.manual.window.html [ Skip ]
+
 crbug.com/1000051 media/controls/volume-slider.html [ Failure Timeout Pass ]
 crbug.com/1000051 virtual/audio-service/media/controls/volume-slider.html [ Failure Timeout Pass ]
 
diff --git a/third_party/blink/web_tests/VirtualTestSuites b/third_party/blink/web_tests/VirtualTestSuites
index 09911597..d58d2e42 100644
--- a/third_party/blink/web_tests/VirtualTestSuites
+++ b/third_party/blink/web_tests/VirtualTestSuites
@@ -306,11 +306,6 @@
     "args": ["--enable-blink-features=CompositeAfterPaint"]
   },
   {
-    "prefix": "paint-non-fast-scrollable-regions",
-    "base": "scrollingcoordinator",
-    "args": ["--enable-blink-features=PaintNonFastScrollableRegions"]
-  },
-  {
     "prefix": "highdpi-threaded",
     "base": "external/wpt/css/css-paint-api/hidpi",
     "args": ["--force-device-scale-factor=2","--enable-use-zoom-for-dsf=false",
@@ -978,11 +973,6 @@
     "args": ["--enable-features=FreezeUserAgent"]
   },
   {
-    "prefix": "native-file-system",
-    "base": "external/wpt/native-file-system",
-    "args": ["--enable-features=NativeFileSystemAPI"]
-  },
-  {
     "prefix": "file-handling",
     "base": "file-handling",
     "args": ["--enable-features=NativeFileSystemAPI,FileHandlingAPI"]
diff --git a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
index ce975a9..08236bb 100644
--- a/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
+++ b/third_party/blink/web_tests/external/WPT_BASE_MANIFEST_6.json
@@ -11425,6 +11425,18 @@
      {}
     ]
    ],
+   "css/CSS2/floats/negative-margin-float-positioning.html": [
+    [
+     "css/CSS2/floats/negative-margin-float-positioning.html",
+     [
+      [
+       "/css/reference/ref-filled-green-100px-square-only.html",
+       "=="
+      ]
+     ],
+     {}
+    ]
+   ],
    "css/CSS2/floats/new-fc-beside-adjoining-float-2.html": [
     [
      "css/CSS2/floats/new-fc-beside-adjoining-float-2.html",
@@ -143821,9 +143833,6 @@
    "css/css-transforms/translate/reference/svg-translate-relative-ref.html": [
     []
    ],
-   "css/css-transitions/AnimationEffect-getComputedTiming.tentative-expected.txt": [
-    []
-   ],
    "css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt": [
     []
    ],
@@ -148024,6 +148033,9 @@
    "css/mediaqueries/forced-colors-expected.txt": [
     []
    ],
+   "css/mediaqueries/navigation-controls.tentative-expected.txt": [
+    []
+   ],
    "css/mediaqueries/reference/ref-green-body.xht": [
     []
    ],
@@ -158251,9 +158263,6 @@
    "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/align-expected.txt": [
     []
    ],
-   "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative-expected.txt": [
-    []
-   ],
    "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-dim-ref.html": [
     []
    ],
@@ -163585,9 +163594,27 @@
    "native-file-system/README.md": [
     []
    ],
+   "native-file-system/resources/native-fs-test-helpers.js": [
+    []
+   ],
+   "native-file-system/resources/sandboxed-fs-test-helpers.js": [
+    []
+   ],
    "native-file-system/resources/test-helpers.js": [
     []
    ],
+   "native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js": [
+    []
+   ],
+   "native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js": [
+    []
+   ],
+   "native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js": [
+    []
+   ],
+   "native-file-system/script-tests/FileSystemWriter.js": [
+    []
+   ],
    "navigation-timing/META.yml": [
     []
    ],
@@ -177373,9 +177400,6 @@
    "webxr/resources/webxr_util.js": [
     []
    ],
-   "webxr/xrWebGLLayer_constructor.https-expected.txt": [
-    []
-   ],
    "workers/META.yml": [
     []
    ],
@@ -218770,6 +218794,12 @@
      {}
     ]
    ],
+   "css/mediaqueries/navigation-controls.tentative.html": [
+    [
+     "css/mediaqueries/navigation-controls.tentative.html",
+     {}
+    ]
+   ],
    "css/mediaqueries/prefers-color-scheme.html": [
     [
      "css/mediaqueries/prefers-color-scheme.html",
@@ -237012,6 +237042,14 @@
      {}
     ]
    ],
+   "fetch/sec-metadata/portal.tentative.https.sub.html": [
+    [
+     "fetch/sec-metadata/portal.tentative.https.sub.html",
+     {
+      "testdriver": true
+     }
+    ]
+   ],
    "fetch/sec-metadata/prefetch.tentative.https.sub.html": [
     [
      "fetch/sec-metadata/prefetch.tentative.https.sub.html",
@@ -241572,6 +241610,12 @@
      {}
     ]
    ],
+   "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html": [
+    [
+     "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html",
+     {}
+    ]
+   ],
    "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html": [
     [
      "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html",
@@ -241590,6 +241634,12 @@
      {}
     ]
    ],
+   "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html": [
+    [
+     "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html",
+     {}
+    ]
+   ],
    "html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-auto.html": [
     [
      "html/rendering/replaced-elements/svg-embedded-sizing/svg-in-img-auto.html",
@@ -258088,53 +258138,261 @@
      }
     ]
    ],
-   "native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js": [
+   "native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js": [
     [
-     "native-file-system/FileSystemBaseHandle-remove.tentative.https.window.html",
+     "native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.html",
      {
       "script_metadata": [
        [
         "script",
+        "/resources/testdriver.js"
+       ],
+       [
+        "script",
         "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/native-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getDirectory.js"
        ]
       ]
      }
     ]
    ],
-   "native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js": [
+   "native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js": [
     [
-     "native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.html",
+     "native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.html",
      {
       "script_metadata": [
        [
         "script",
+        "/resources/testdriver.js"
+       ],
+       [
+        "script",
         "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/native-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getFile.js"
        ]
       ]
      }
     ]
    ],
-   "native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js": [
+   "native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js": [
     [
-     "native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.html",
+     "native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.html",
      {
       "script_metadata": [
        [
         "script",
+        "/resources/testdriver.js"
+       ],
+       [
+        "script",
         "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/native-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-removeEntry.js"
        ]
       ]
      }
     ]
    ],
-   "native-file-system/FileSystemWriter.tentative.https.window.js": [
+   "native-file-system/native_FileSystemWriter.tentative.https.manual.window.js": [
     [
-     "native-file-system/FileSystemWriter.tentative.https.window.html",
+     "native-file-system/native_FileSystemWriter.tentative.https.manual.window.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "/resources/testdriver.js"
+       ],
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/native-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemWriter.js"
+       ]
+      ]
+     }
+    ]
+   ],
+   "native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js": [
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.html",
      {
       "script_metadata": [
        [
         "script",
         "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getDirectory.js"
+       ]
+      ]
+     }
+    ],
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.worker.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getDirectory.js"
+       ]
+      ]
+     }
+    ]
+   ],
+   "native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js": [
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getFile.js"
+       ]
+      ]
+     }
+    ],
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.worker.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-getFile.js"
+       ]
+      ]
+     }
+    ]
+   ],
+   "native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js": [
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-removeEntry.js"
+       ]
+      ]
+     }
+    ],
+    [
+     "native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.worker.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemDirectoryHandle-removeEntry.js"
+       ]
+      ]
+     }
+    ]
+   ],
+   "native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js": [
+    [
+     "native-file-system/sandboxed_FileSystemWriter.tentative.https.any.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemWriter.js"
+       ]
+      ]
+     }
+    ],
+    [
+     "native-file-system/sandboxed_FileSystemWriter.tentative.https.any.worker.html",
+     {
+      "script_metadata": [
+       [
+        "script",
+        "resources/test-helpers.js"
+       ],
+       [
+        "script",
+        "resources/sandboxed-fs-test-helpers.js"
+       ],
+       [
+        "script",
+        "script-tests/FileSystemWriter.js"
        ]
       ]
      }
@@ -292495,6 +292753,12 @@
      {}
     ]
    ],
+   "svg/animations/keysplines-x-limits.html": [
+    [
+     "svg/animations/keysplines-x-limits.html",
+     {}
+    ]
+   ],
    "svg/animations/multiple-animations-ending.html": [
     [
      "svg/animations/multiple-animations-ending.html",
@@ -319999,15 +320263,15 @@
  },
  "paths": {
   ".github/workflows/pull_request.yml": [
-   "9d288c0c9209904091a9b66b9334929aee02c3c7",
+   "81a53c67f4b11ca3c7ddde916dcebb35cf83a021",
    "support"
   ],
   ".github/workflows/push-build-publish-documentation-website.yml": [
-   "167e0d930f4da142ffab22b8c685119495c52702",
+   "f6a1401a3dd161168d3869dd143527969e8300c1",
    "support"
   ],
   ".github/workflows/push-build-release-manifest.yml": [
-   "af677454fdd2cf692929c68ef80bcfe8fb52b69f",
+   "baa06cc14fd4e6859f76f63b2c3962897d1b9837",
    "support"
   ],
   ".gitignore": [
@@ -326931,7 +327195,7 @@
    "testharness"
   ],
   "WebIDL/ecmascript-binding/interface-prototype-object-expected.txt": [
-   "477e799f721d60193e71a9a867b516b29a012243",
+   "5898bff4539119d6d6a28e935909fe0d46a7b001",
    "support"
   ],
   "WebIDL/ecmascript-binding/interface-prototype-object.html": [
@@ -337878,6 +338142,10 @@
    "ae8783ce31303024152d3dc91dde3058b3beef0c",
    "testharness"
   ],
+  "css/CSS2/floats/negative-margin-float-positioning.html": [
+   "8b4aef22f71f8695ebbc5b6dc83ad5639945618d",
+   "reftest"
+  ],
   "css/CSS2/floats/new-fc-beside-adjoining-float-2.html": [
    "2d27a28a0533eece2ec6b1ee933028da8fb99c4f",
    "reftest"
@@ -349975,7 +350243,7 @@
    "testharness"
   ],
   "css/css-animations/Document-getAnimations.tentative-expected.txt": [
-   "e2affb22cb3d16528bad235ae30faf82c1e357e7",
+   "7bd0e247132b80931d9e4acc8ccfecbbfa9e2e0a",
    "support"
   ],
   "css/css-animations/Document-getAnimations.tentative.html": [
@@ -349987,7 +350255,7 @@
    "testharness"
   ],
   "css/css-animations/Element-getAnimations.tentative-expected.txt": [
-   "820d14a85363b64fd7102a314ba96c77dfa7effd",
+   "f8481b4d54d06bb18be7395e65e717a5aeacae2e",
    "support"
   ],
   "css/css-animations/Element-getAnimations.tentative.html": [
@@ -395966,16 +396234,12 @@
    "c8caa6bd7c17de28dcd3f50c6357adc574084225",
    "reftest"
   ],
-  "css/css-transitions/AnimationEffect-getComputedTiming.tentative-expected.txt": [
-   "dfb103d1b940d787c00b3c0c975d7588cf99cac8",
-   "support"
-  ],
   "css/css-transitions/AnimationEffect-getComputedTiming.tentative.html": [
-   "4b6a28b5694f52103bcb6b383dbcd1ad6553cf3a",
+   "32c15f07a96a2a1cf99068e303f17296aa71e96e",
    "testharness"
   ],
   "css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt": [
-   "95811a2b18c4c4edacc7425fa776e2fbb620bac2",
+   "63466c3fd68c9deea428e55eb500c0d2c26b48a1",
    "support"
   ],
   "css/css-transitions/CSSPseudoElement-getAnimations.tentative.html": [
@@ -396031,11 +396295,11 @@
    "testharness"
   ],
   "css/css-transitions/KeyframeEffect-getKeyframes.tentative-expected.txt": [
-   "30c5daca02330c2a881dd31f729eb5bdc23cf693",
+   "18311024fce1d7bae45d642bdd1c4c4c2ed6eb10",
    "support"
   ],
   "css/css-transitions/KeyframeEffect-getKeyframes.tentative.html": [
-   "08a90734392c2e14c0b2593144796e713ff0a20d",
+   "47b769b13a92971ccb02acd6ea61c1bda53f847f",
    "testharness"
   ],
   "css/css-transitions/KeyframeEffect-target.tentative.html": [
@@ -397375,7 +397639,7 @@
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt": [
-   "79cd9ac4a20d85220abff8797462e7047c103711",
+   "015a855ebce6d58d5d65f5021fe54e22ec022dbd",
    "support"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/border-radius.html": [
@@ -397815,7 +398079,7 @@
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt": [
-   "a56464041523b3d3df8292a09e86dda997acfa4e",
+   "0a3178952f6073fe4b859aa223a43e4e94d2a13a",
    "support"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/line-height-step.html": [
@@ -398051,7 +398315,7 @@
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt": [
-   "7e0d5df5695da5e8c6c393e920277fd6128a65bb",
+   "b63254e6ef994b3d1ffe567b3fdd4e07646de844",
    "support"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align.html": [
@@ -398063,7 +398327,7 @@
    "testharness"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt": [
-   "5441372254c16f84474ecff8731700ddf54384af",
+   "fff447e08c01b59aa673c7e268dce2a51c17f99c",
    "support"
   ],
   "css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type.html": [
@@ -411738,6 +412002,14 @@
    "d039281c0254e2bb794e229baecbe4d39c547baa",
    "reftest"
   ],
+  "css/mediaqueries/navigation-controls.tentative-expected.txt": [
+   "f23231cfaac553ca4f3c98ee04f6d7bcfc933ead",
+   "support"
+  ],
+  "css/mediaqueries/navigation-controls.tentative.html": [
+   "ac1087bb65b9a8fd85d924ad1ae0de797762dac5",
+   "testharness"
+  ],
   "css/mediaqueries/prefers-color-scheme.html": [
    "c6ca45ab17201466e01006cab78331a0765cc6c8",
    "testharness"
@@ -420107,7 +420379,7 @@
    "testharness"
   ],
   "dom/lists/DOMTokenList-coverage-for-attributes-expected.txt": [
-   "debbcfd7e0b23159662441d80c0b2b85fd41c3d1",
+   "cefe9f965086569e3e40a74810a805f7287ea925",
    "support"
   ],
   "dom/lists/DOMTokenList-coverage-for-attributes.html": [
@@ -427782,6 +428054,10 @@
    "b60ae206c78b3dd8e934dde7a7408fe4a7465932",
    "testharness"
   ],
+  "fetch/sec-metadata/portal.tentative.https.sub.html": [
+   "2a9df1f01174c7297f7d207ba1f52de2dd588b0c",
+   "testharness"
+  ],
   "fetch/sec-metadata/prefetch.tentative.https.sub.html": [
    "2c230b8949688940067d9bbc151b12f59e20b517",
    "testharness"
@@ -427871,7 +428147,7 @@
    "support"
   ],
   "fetch/sec-metadata/resources/post-to-owner.py": [
-   "c5ded49d71bbc4c8f6d0cc3cc1bd43f9029dcf1b",
+   "096f33b04a22f34eccbcf9981010ff6e43c8ea79",
    "support"
   ],
   "fetch/sec-metadata/resources/record-header.py": [
@@ -431467,7 +431743,7 @@
    "testharness"
   ],
   "html/browsers/origin/cross-origin-objects/cross-origin-objects.html": [
-   "f664819d3404498dc1ef9ede50c7b1b28fad1933",
+   "50fe71a2c6fba3c1ec6e42c94dd05899eb24245c",
    "testharness"
   ],
   "html/browsers/origin/cross-origin-objects/frame-with-then.html": [
@@ -431991,7 +432267,7 @@
    "testharness"
   ],
   "html/browsers/the-window-object/window-prototype-chain-expected.txt": [
-   "3115e100472207b01f2b1d0b123aadbf1c590b37",
+   "ec84a68c5fb114a8a548f7e5048bae7b1bb3b0ab",
    "support"
   ],
   "html/browsers/the-window-object/window-prototype-chain.html": [
@@ -433819,7 +434095,7 @@
    "support"
   ],
   "html/dom/idlharness.worker-expected.txt": [
-   "7354ff66a2a7b2a348999a8117445dc5f6c013cb",
+   "33d339f9ee293263c615989d9a4650a045efb2fa",
    "support"
   ],
   "html/dom/idlharness.worker.js": [
@@ -437891,7 +438167,7 @@
    "support"
   ],
   "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt": [
-   "61e4b6f14a93fb8972cd9794f2323167d0c8bae9",
+   "00b6f4882c7327c23ba4fd5183f57570d9d56a78",
    "support"
   ],
   "html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js": [
@@ -439202,12 +439478,12 @@
    "b5f3ec1aa62d8238628409fcda14b189e7ed2a65",
    "testharness"
   ],
-  "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative-expected.txt": [
-   "0c42ffc2a660a437b91ff7e2985f675b92669583",
-   "support"
+  "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/canvas-aspect-ratio.html": [
+   "1d231d52cde8b4758cf834db42231720c374b060",
+   "testharness"
   ],
   "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-aspect-ratio.tentative.html": [
-   "ae266882b1957080b28f1204a0183c6ca015cadc",
+   "c9ce86869e10e367a4aadf99d86d1c407ebd1ccf",
    "testharness"
   ],
   "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/img-dim-ref.html": [
@@ -439266,6 +439542,10 @@
    "55f7f0a3bfeca2c8262ab85f8b1b90f7a705c803",
    "reftest"
   ],
+  "html/rendering/replaced-elements/attributes-for-embedded-content-and-images/video-aspect-ratio.html": [
+   "2b4937046d2f20e0dafddf07b1470adec5e7b050",
+   "testharness"
+  ],
   "html/rendering/replaced-elements/embedded-content-rendering-rules/OWNERS": [
    "9b2e5be0a19c48f73b57fe0ad8bbeea81238a1d1",
    "support"
@@ -444847,7 +445127,7 @@
    "testharness"
   ],
   "html/semantics/interfaces-expected.txt": [
-   "886e7b2c154d563563708f78582f57808814c643",
+   "beb3ed0ac1ca095c25a6311ff53a588a6ad59598",
    "support"
   ],
   "html/semantics/interfaces.html": [
@@ -446975,7 +447255,7 @@
    "testharness"
   ],
   "html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt": [
-   "aa4cd8e0200de165a38fb4ad49161ed722ea4fdb",
+   "3bcfc3bb79432a59877e7b2c259147b748871a7f",
    "support"
   ],
   "html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type.html": [
@@ -451039,7 +451319,7 @@
    "support"
   ],
   "interfaces/WebIDL.idl": [
-   "78d85c13fb9b461e24bc2e6667b7431241f5dfcb",
+   "a118dfd1a20e439129ab5f73b15ced9523c8d7b8",
    "support"
   ],
   "interfaces/accelerometer.idl": [
@@ -451087,7 +451367,7 @@
    "support"
   ],
   "interfaces/cookie-store.idl": [
-   "533884fdb5865fc5fe87bd73d68983dd4b485676",
+   "c3204b2515a2000ca9be0cf6b4f6732e0ddc63a1",
    "support"
   ],
   "interfaces/cors-rfc1918.idl": [
@@ -451195,11 +451475,11 @@
    "support"
   ],
   "interfaces/feature-policy.idl": [
-   "3ded1e9b0c64ec84d4f4d07b6b870effcb9cd893",
+   "85601321a17f3d0a46d2246642d59ef44d916398",
    "support"
   ],
   "interfaces/fetch.idl": [
-   "f529c4501bf484f57858ab2eb616a9d42aea766f",
+   "eacc69d8b9d1d8f7f9bdbf6f2a879d95d9d847bd",
    "support"
   ],
   "interfaces/filter-effects.idl": [
@@ -451331,11 +451611,11 @@
    "support"
   ],
   "interfaces/notifications.idl": [
-   "1a55c31bb04c0ab11946a90f374fdf07e268ad05",
+   "d79e9076c81c9f1016f1ca98c16356f6b9454365",
    "support"
   ],
   "interfaces/orientation-event.idl": [
-   "a8eef516f29b40c1b1604ad8d853e232f89eeabe",
+   "af5bc546ac1726ab610285bfa007df3b4e39bf11",
    "support"
   ],
   "interfaces/orientation-sensor.idl": [
@@ -457546,28 +457826,68 @@
    "0d9137dc6fb91b1499d922e01d6ad96049f5757b",
    "testharness"
   ],
-  "native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js": [
-   "fd2ff888e371f383aa1ee87288dd983add46f662",
-   "testharness"
-  ],
-  "native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js": [
-   "79154b058ff0864032c80b09aef9b8b8c760a105",
-   "testharness"
-  ],
-  "native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js": [
-   "fa38abbc5447625cd8396a76c420259840b264f3",
-   "testharness"
-  ],
-  "native-file-system/FileSystemWriter.tentative.https.window.js": [
-   "acc0be1c52184a8b67fdb57953cdc2b4ed793499",
-   "testharness"
-  ],
   "native-file-system/README.md": [
    "6905a68e7901ce26bc1a363062304e1536604400",
    "support"
   ],
+  "native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js": [
+   "cfe729cd1f1dd4b53f00b3b13cd53f64f84ca409",
+   "testharness"
+  ],
+  "native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js": [
+   "0455cb800919ee353b7f2e87bf47b76ba075519b",
+   "testharness"
+  ],
+  "native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js": [
+   "8905a7afdea57c974a9a06790df6b9e692d32139",
+   "testharness"
+  ],
+  "native-file-system/native_FileSystemWriter.tentative.https.manual.window.js": [
+   "25d8ee995857fa67be2c41f048e882ec473f739d",
+   "testharness"
+  ],
+  "native-file-system/resources/native-fs-test-helpers.js": [
+   "5ad8c04724b7a2e7743b43a84efaa05b7e6b703d",
+   "support"
+  ],
+  "native-file-system/resources/sandboxed-fs-test-helpers.js": [
+   "5f4f269d2242c2bac59136ff2cf99cbb18f639eb",
+   "support"
+  ],
   "native-file-system/resources/test-helpers.js": [
-   "b794cee0c5f111fa9c9a2b05b8a94c2a2260839f",
+   "d0360921f1d8ce7257bd7d6586d333b8534c620d",
+   "support"
+  ],
+  "native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js": [
+   "6fcf566e31fbf061e7545280198562d9e41cad11",
+   "testharness"
+  ],
+  "native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js": [
+   "65ae891cd44418554800e12801617097f6a72c91",
+   "testharness"
+  ],
+  "native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js": [
+   "a4be8bd267e743ee617c29c1cce1188e6b9d377a",
+   "testharness"
+  ],
+  "native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js": [
+   "8352e2487fe0823a2d353372757d833d85e98c4b",
+   "testharness"
+  ],
+  "native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js": [
+   "c2c128f5eded06f440e634051fac021e20061e0d",
+   "support"
+  ],
+  "native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js": [
+   "4d8ee96c3d033130f5940306d6f09737db7b0e9c",
+   "support"
+  ],
+  "native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js": [
+   "8e89e0958db96ee64927d28a5239b0740ac0f632",
+   "support"
+  ],
+  "native-file-system/script-tests/FileSystemWriter.js": [
+   "1c51d0b4eb771eec5a606263e72719be589aa317",
    "support"
   ],
   "navigation-timing/META.yml": [
@@ -478307,7 +478627,7 @@
    "support"
   ],
   "resources/testharness.js": [
-   "9ef46ca77646c92044ffc9d515009fafc11ed7d1",
+   "55de1ce252bd0349aa5bee2e69120ae44520ed02",
    "support"
   ],
   "resources/testharness.js.headers": [
@@ -484814,6 +485134,10 @@
    "7a60e0280baa67ef8731b7bdc737788d326c3c24",
    "testharness"
   ],
+  "svg/animations/keysplines-x-limits.html": [
+   "3c9ba65059f99dfbad262a4df65cf1eba0a4f0d8",
+   "testharness"
+  ],
   "svg/animations/multiple-animations-ending.html": [
    "a9b7853bb0ed49a11af24d020766248ebd7d4bbe",
    "testharness"
@@ -503534,12 +503858,8 @@
    "1b7d982d596187f1381bee73eac2990900a37f8f",
    "testharness"
   ],
-  "webxr/xrWebGLLayer_constructor.https-expected.txt": [
-   "be0603a78356f77aa03542657046774d805ffde1",
-   "support"
-  ],
   "webxr/xrWebGLLayer_constructor.https.html": [
-   "7e57f4286c66ea9f8380791840dada3d82b611fe",
+   "0584da79c12def757f951ec53c4c048f18c39b8c",
    "testharness"
   ],
   "webxr/xrWebGLLayer_framebuffer_draw.https.html": [
diff --git a/third_party/blink/web_tests/external/wpt/.github/workflows/pull_request.yml b/third_party/blink/web_tests/external/wpt/.github/workflows/pull_request.yml
index 9d288c0..81a53c67 100644
--- a/third_party/blink/web_tests/external/wpt/.github/workflows/pull_request.yml
+++ b/third_party/blink/web_tests/external/wpt/.github/workflows/pull_request.yml
@@ -7,7 +7,7 @@
     - uses: actions/checkout@v1
       with:
         ref: refs/heads/master
-        fetch-depth: 1
+        fetch-depth: 50
     - name: update-pr-preview
       uses: ./tools/docker/github
       env:
diff --git a/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-publish-documentation-website.yml b/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-publish-documentation-website.yml
index 167e0d9..f6a1401 100644
--- a/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-publish-documentation-website.yml
+++ b/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-publish-documentation-website.yml
@@ -9,7 +9,7 @@
     steps:
     - uses: actions/checkout@v1
       with:
-        fetch-depth: 1
+        fetch-depth: 50
     - name: website-build-and-publish
       uses: ./tools/docker/documentation
       env:
diff --git a/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-release-manifest.yml b/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-release-manifest.yml
index af67745..baa06cc 100644
--- a/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-release-manifest.yml
+++ b/third_party/blink/web_tests/external/wpt/.github/workflows/push-build-release-manifest.yml
@@ -9,7 +9,7 @@
     steps:
     - uses: actions/checkout@v1
       with:
-        fetch-depth: 1
+        fetch-depth: 50
     - name: manifest-build-and-tag
       uses: ./tools/docker/github
       env:
diff --git a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object-expected.txt b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object-expected.txt
index 477e799..5898bff 100644
--- a/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/WebIDL/ecmascript-binding/interface-prototype-object-expected.txt
@@ -1,5 +1,5 @@
 This is a testharness.js-based test.
-FAIL The class string of an interface prototype object is the concatenation of the interface's identifier and the string 'Prototype'. assert_equals: expected "[object DocumentPrototype]" but got "[object Document]"
+FAIL The class string of an interface prototype object is the concatenation of the interface's identifier and the string 'Prototype'. assert_class_string: expected "[object DocumentPrototype]" but got "[object Document]"
 PASS [Unscopable] extended attribute makes @@unscopables object on the prototype object, whose prototype is null.
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/Document-getAnimations.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/Document-getAnimations.tentative-expected.txt
index e2affb2..7bd0e24 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/Document-getAnimations.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/Document-getAnimations.tentative-expected.txt
@@ -6,7 +6,7 @@
 PASS Order of CSS Animations - across and within elements
 FAIL Order of CSS Animations - markup-bound vs free animations assert_equals: getAnimations returns markup-bound and free animations expected 2 but got 1
 FAIL Order of CSS Animations - free animations assert_equals: getAnimations returns free animations expected 2 but got 0
-FAIL Order of CSS Animations and CSS Transitions assert_equals: Transition comes first expected "[object CSSTransition]" but got "[object CSSAnimation]"
+FAIL Order of CSS Animations and CSS Transitions assert_class_string: Transition comes first expected "[object CSSTransition]" but got "[object CSSAnimation]"
 PASS Finished but filling CSS Animations are returned
 PASS Finished but not filling CSS Animations are not returned
 PASS Yet-to-start CSS Animations are returned
diff --git a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations.tentative-expected.txt
index 820d14a..f8481b4 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-animations/Element-getAnimations.tentative-expected.txt
@@ -3,7 +3,7 @@
 PASS getAnimations for CSS Animations
 PASS getAnimations returns CSSAnimation objects for CSS Animations
 PASS getAnimations for multi-property animations
-FAIL getAnimations for both CSS Animations and CSS Transitions at once assert_equals: First-returned animation is the CSS Transition expected "[object CSSTransition]" but got "[object CSSAnimation]"
+FAIL getAnimations for both CSS Animations and CSS Transitions at once assert_class_string: First-returned animation is the CSS Transition expected "[object CSSTransition]" but got "[object CSSAnimation]"
 PASS getAnimations for CSS Animations that have finished
 PASS getAnimations for CSS Animations that have finished but are forwards filling
 PASS getAnimations for CSS Animations with animation-name: none
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters-ref.html b/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters-ref.html
new file mode 100644
index 0000000..913aa7bc
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters-ref.html
@@ -0,0 +1,2 @@
+<meta name="flags" content="ahem">
+<div style="opacity: 0.5; letter-spacing: -0.6em; font: 100px/1 Ahem; white-space: pre">X X X</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters.html b/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters.html
new file mode 100644
index 0000000..34b444e
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-color/opacity-overlapping-letters.html
@@ -0,0 +1,5 @@
+<link rel="help" href="http://www.w3.org/TR/css3-color/#transparency">
+<link rel="match" href="opacity-overlapping-letters-ref.html">
+<meta name="flags" content="ahem">
+<meta name="assert" content="Opacity should be apply on the whole text content atomically.">
+<div style="opacity: 0.5; letter-spacing: -0.6em; font: 100px/1 Ahem">XXXXX</div>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-019.html b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-019.html
new file mode 100644
index 0000000..3572a6cc
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/css/css-flexbox/flex-minimum-height-flex-items-019.html
@@ -0,0 +1,53 @@
+<!DOCTYPE html>
+<title>CSS Flexbox: min-height: auto with flex items containing percentage-sized children</title>
+<link rel="author" title="Google LLC" href="https://www.google.com/" />
+<link rel="help" href="https://drafts.csswg.org/css-flexbox/#min-size-auto" />
+<link rel="match" href="../reference/ref-filled-green-100px-square.xht" />
+<link rel="issue" href="https://bugs.chromium.org/p/chromium/issues/detail?id=1003556" />
+
+<style>
+.flex {
+    display: flex;
+}
+.column {
+    flex-direction: column;
+}
+
+.bigger-than-parent {
+    height: 100%;
+    min-height: 100px;
+    background-color: red;
+}
+
+#reference-overlapped-green {
+    position: absolute;
+    background-color: green;
+    width: 100px;
+    height: 100px;
+    z-index: 1;
+}
+
+</style>
+
+<p>Test passes if there is a filled green square and <strong>no red</strong>.</p>
+
+<div id="reference-overlapped-green"></div>
+
+<div id="outer" style="width: 100px; height: 300px;" class="flex">
+  <div style="height: 100px; width: 100px; background: blue;" class="flex column">
+      <div style="flex: 0 1 100%"></div>
+
+      <div style="flex: 1 0 30px;">
+          <div class="bigger-than-parent">
+          </div>
+      </div>
+  </div>
+</div>
+
+<script>
+onload = function() {
+  var outer = document.getElementById("outer");
+  outer.offsetWidth;
+  outer.style.height = "200px";
+};
+</script>
diff --git a/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt
index 95811a2b..63466c3f 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-transitions/CSSPseudoElement-getAnimations.tentative-expected.txt
@@ -1,4 +1,4 @@
 This is a testharness.js-based test.
-FAIL getAnimations sorts simultaneous transitions by name assert_equals: Got pseudo-element target expected "[object CSSPseudoElement]" but got "[object Element]"
+FAIL getAnimations sorts simultaneous transitions by name assert_class_string: Got pseudo-element target expected "[object CSSPseudoElement]" but got "[object Element]"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt
index 79cd9ac..015a855 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/border-radius-expected.txt
@@ -1,8 +1,8 @@
 This is a testharness.js-based test.
 PASS Can set 'border-top-left-radius' to CSS-wide keywords
 PASS Can set 'border-top-left-radius' to var() references
-FAIL Can set 'border-top-left-radius' to a length assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
-FAIL Can set 'border-top-left-radius' to a percent assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-top-left-radius' to a length assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-top-left-radius' to a percent assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
 PASS Setting 'border-top-left-radius' to a time throws TypeError
 PASS Setting 'border-top-left-radius' to an angle throws TypeError
 PASS Setting 'border-top-left-radius' to a flexible length throws TypeError
@@ -12,8 +12,8 @@
 PASS Setting 'border-top-left-radius' to a transform throws TypeError
 PASS Can set 'border-top-right-radius' to CSS-wide keywords
 PASS Can set 'border-top-right-radius' to var() references
-FAIL Can set 'border-top-right-radius' to a length assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
-FAIL Can set 'border-top-right-radius' to a percent assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-top-right-radius' to a length assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-top-right-radius' to a percent assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
 PASS Setting 'border-top-right-radius' to a time throws TypeError
 PASS Setting 'border-top-right-radius' to an angle throws TypeError
 PASS Setting 'border-top-right-radius' to a flexible length throws TypeError
@@ -23,8 +23,8 @@
 PASS Setting 'border-top-right-radius' to a transform throws TypeError
 PASS Can set 'border-bottom-left-radius' to CSS-wide keywords
 PASS Can set 'border-bottom-left-radius' to var() references
-FAIL Can set 'border-bottom-left-radius' to a length assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
-FAIL Can set 'border-bottom-left-radius' to a percent assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-bottom-left-radius' to a length assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-bottom-left-radius' to a percent assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
 PASS Setting 'border-bottom-left-radius' to a time throws TypeError
 PASS Setting 'border-bottom-left-radius' to an angle throws TypeError
 PASS Setting 'border-bottom-left-radius' to a flexible length throws TypeError
@@ -34,8 +34,8 @@
 PASS Setting 'border-bottom-left-radius' to a transform throws TypeError
 PASS Can set 'border-bottom-right-radius' to CSS-wide keywords
 PASS Can set 'border-bottom-right-radius' to var() references
-FAIL Can set 'border-bottom-right-radius' to a length assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
-FAIL Can set 'border-bottom-right-radius' to a percent assert_equals: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-bottom-right-radius' to a length assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
+FAIL Can set 'border-bottom-right-radius' to a percent assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSUnitValue]"
 PASS Setting 'border-bottom-right-radius' to a time throws TypeError
 PASS Setting 'border-bottom-right-radius' to an angle throws TypeError
 PASS Setting 'border-bottom-right-radius' to a flexible length throws TypeError
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt
index a5646404..0a317895 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/line-height-expected.txt
@@ -2,9 +2,9 @@
 PASS Can set 'line-height' to CSS-wide keywords
 PASS Can set 'line-height' to var() references
 PASS Can set 'line-height' to the 'normal' keyword
-FAIL Can set 'line-height' to a length assert_equals: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
-FAIL Can set 'line-height' to a number assert_equals: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
-FAIL Can set 'line-height' to a percent assert_equals: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'line-height' to a length assert_class_string: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'line-height' to a number assert_class_string: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'line-height' to a percent assert_class_string: relative lengths must compute to a CSSUnitValue expected "[object CSSUnitValue]" but got "[object CSSKeywordValue]"
 PASS Setting 'line-height' to a time throws TypeError
 PASS Setting 'line-height' to an angle throws TypeError
 PASS Setting 'line-height' to a flexible length throws TypeError
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt
index 7e0d5df..b63254e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-align-expected.txt
@@ -1,10 +1,10 @@
 This is a testharness.js-based test.
 PASS Can set 'scroll-snap-align' to CSS-wide keywords
 PASS Can set 'scroll-snap-align' to var() references
-FAIL Can set 'scroll-snap-align' to the 'none' keyword assert_equals: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
-FAIL Can set 'scroll-snap-align' to the 'start' keyword assert_equals: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
-FAIL Can set 'scroll-snap-align' to the 'end' keyword assert_equals: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
-FAIL Can set 'scroll-snap-align' to the 'center' keyword assert_equals: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'scroll-snap-align' to the 'none' keyword assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'scroll-snap-align' to the 'start' keyword assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'scroll-snap-align' to the 'end' keyword assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
+FAIL Can set 'scroll-snap-align' to the 'center' keyword assert_class_string: expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
 PASS Setting 'scroll-snap-align' to a length throws TypeError
 PASS Setting 'scroll-snap-align' to a percent throws TypeError
 PASS Setting 'scroll-snap-align' to a time throws TypeError
diff --git a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt
index 5441372..fff447e 100644
--- a/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/css/css-typed-om/the-stylepropertymap/properties/scroll-snap-type-expected.txt
@@ -17,6 +17,6 @@
 PASS Setting 'scroll-snap-type' to a URL throws TypeError
 PASS Setting 'scroll-snap-type' to a transform throws TypeError
 PASS 'scroll-snap-type' does not supported 'x mandatory'
-FAIL 'scroll-snap-type' does not supported 'inline proximity' assert_equals: Unsupported value must be a CSSStyleValue and not one of its subclasses expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
+FAIL 'scroll-snap-type' does not supported 'inline proximity' assert_class_string: Unsupported value must be a CSSStyleValue and not one of its subclasses expected "[object CSSStyleValue]" but got "[object CSSKeywordValue]"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt b/third_party/blink/web_tests/external/wpt/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt
index debbcfd..cefe9f9 100644
--- a/third_party/blink/web_tests/external/wpt/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/dom/lists/DOMTokenList-coverage-for-attributes-expected.txt
@@ -42,7 +42,7 @@
 PASS output.relList in http://www.w3.org/1999/xhtml namespace should be undefined.
 PASS td.relList in http://www.w3.org/1999/xhtml namespace should be undefined.
 PASS th.relList in http://www.w3.org/1999/xhtml namespace should be undefined.
-FAIL a.relList in http://www.w3.org/2000/svg namespace should be DOMTokenList. assert_equals: expected "[object DOMTokenList]" but got "[object Undefined]"
+FAIL a.relList in http://www.w3.org/2000/svg namespace should be DOMTokenList. assert_class_string: expected "[object DOMTokenList]" but got "[object Undefined]"
 PASS area.relList in http://www.w3.org/2000/svg namespace should be undefined.
 PASS link.relList in http://www.w3.org/2000/svg namespace should be undefined.
 PASS iframe.relList in http://www.w3.org/2000/svg namespace should be undefined.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
index f664819..50fe71a 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/origin/cross-origin-objects/cross-origin-objects.html
@@ -561,6 +561,32 @@
   });
 }, "Resolving a promise with a cross-origin location should work (cross-site).");
 
+addTest(function(win) {
+  var desc = Object.getOwnPropertyDescriptor(window, "onmouseenter");
+  var f = () => {};
+
+  // Check that it has [LenientThis] behavior
+  assert_equals(desc.get.call({}), undefined, "getter should return undefined");
+  desc.set.call({}, f); // Should not throw.
+
+  // Check that we can apply it to a same-origin window.
+  assert_equals(desc.get.call(B), null, "Should be able to read the value");
+  desc.set.call(B, f);
+  assert_equals(desc.get.call(B), f, "Value should have updated");
+  // And reset it for our next test
+  desc.set.call(B, null);
+  assert_equals(desc.get.call(B), null, "Should have been reset");
+
+  // Check that applying it to a cross-origin window throws instead of doing
+  // the [LenientThis] behavior.
+  assert_throws("SecurityError", () => {
+    desc.get.call(win);
+  }, "Should throw when getting cross-origin");
+  assert_throws("SecurityError", () => {
+    desc.set.call(win, f);
+  }, "Should throw when setting cross-origin");
+}, "LenientThis behavior");
+
 // We do a fresh load of the subframes for each test to minimize side-effects.
 // It would be nice to reload ourselves as well, but we can't do that without
 // disrupting the test harness.
diff --git a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-prototype-chain-expected.txt b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-prototype-chain-expected.txt
index 3115e10..ec84a68 100644
--- a/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-prototype-chain-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/browsers/the-window-object/window-prototype-chain-expected.txt
@@ -1,8 +1,8 @@
 This is a testharness.js-based test.
 PASS window object
-FAIL Window.prototype assert_equals: expected "[object WindowPrototype]" but got "[object Window]"
+FAIL Window.prototype assert_class_string: expected "[object WindowPrototype]" but got "[object Window]"
 PASS Global scope polluter
-FAIL EventTarget.prototype assert_equals: expected "[object EventTargetPrototype]" but got "[object EventTarget]"
+FAIL EventTarget.prototype assert_class_string: expected "[object EventTargetPrototype]" but got "[object EventTarget]"
 PASS Object.prototype
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
index 61e4b6f1..00b6f48 100644
--- a/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window-expected.txt
@@ -7,7 +7,7 @@
 PASS JS-engine-created TypeError (cross-site iframe)
 PASS web API-created TypeError (worker)
 PASS web API-created TypeError (cross-site iframe)
-FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:1905:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:576:22)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
-FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:1905:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:576:22)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+FAIL web API-created DOMException (worker) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:41:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:1908:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:576:22)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:40:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
+FAIL web API-created DOMException (cross-site iframe) assert_equals: expected (string) "Error: Failed to execute 'createElement' on 'Document': The tag name provided ('') is not a valid name.\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:33:14\n    at Test.<anonymous> (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:60:19)\n    at Test.step (http://web-platform.test:8001/resources/testharness.js:1908:25)\n    at async_test (http://web-platform.test:8001/resources/testharness.js:576:22)\n    at stackTests (http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:57:3)\n    at http://web-platform.test:8001/html/infrastructure/safe-passing-of-structured-data/structured-cloning-error-stack-optional.sub.window.js:31:1" but got (undefined) undefined
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/interfaces-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/interfaces-expected.txt
index 886e7b2..beb3ed0 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/interfaces-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/interfaces-expected.txt
@@ -94,7 +94,7 @@
 PASS Interfaces for FIGURE
 PASS Interfaces for font
 PASS Interfaces for FONT
-FAIL Interfaces for foo-BAR assert_equals: Element foo-BAR should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
+FAIL Interfaces for foo-BAR assert_class_string: Element foo-BAR should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
 PASS Interfaces for foo-bar
 PASS Interfaces for FOO-BAR
 PASS Interfaces for foo
@@ -291,7 +291,7 @@
 PASS Interfaces for WBR
 PASS Interfaces for xmp
 PASS Interfaces for XMP
-FAIL Interfaces for å-bar assert_equals: Element å-bar should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
-FAIL Interfaces for Å-BAR assert_equals: Element Å-BAR should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
+FAIL Interfaces for å-bar assert_class_string: Element å-bar should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
+FAIL Interfaces for Å-BAR assert_class_string: Element Å-BAR should have HTMLUnknownElement as its primary interface. expected "[object HTMLUnknownElement]" but got "[object HTMLElement]"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt
index aa4cd8e..3bcfc3b 100644
--- a/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt
+++ b/third_party/blink/web_tests/external/wpt/html/semantics/scripting-1/the-template-element/definitions/template-contents-owner-document-type-expected.txt
@@ -1,7 +1,7 @@
 This is a testharness.js-based test.
-FAIL The template contents owner document type is HTML document (case when document has browsing context and the template is created by HTML parser) assert_equals: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
-FAIL The template contents owner document type is HTML document (case when document has browsing context and the template is created by createElement()) assert_equals: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
-FAIL The template contents owner document type is HTML document (case when document has no browsing context and the template is created by createElement()) assert_equals: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
-FAIL The template contents owner document type is HTML document (case when document has no browsing context and the template is created via innerHTML) assert_equals: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
+FAIL The template contents owner document type is HTML document (case when document has browsing context and the template is created by HTML parser) assert_class_string: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
+FAIL The template contents owner document type is HTML document (case when document has browsing context and the template is created by createElement()) assert_class_string: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
+FAIL The template contents owner document type is HTML document (case when document has no browsing context and the template is created by createElement()) assert_class_string: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
+FAIL The template contents owner document type is HTML document (case when document has no browsing context and the template is created via innerHTML) assert_class_string: Template content owner should be a document expected "[object Document]" but got "[object HTMLDocument]"
 Harness: the test ran to completion.
 
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/WebIDL.idl b/third_party/blink/web_tests/external/wpt/interfaces/WebIDL.idl
index 78d85c13f..a118dfd 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/WebIDL.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/WebIDL.idl
@@ -9,9 +9,9 @@
 
 typedef (ArrayBufferView or ArrayBuffer) BufferSource;
 [Exposed=(Window,Worker),
- Constructor(optional DOMString message = "", optional DOMString name = "Error"),
  Serializable]
 interface DOMException { // but see below note about ECMAScript binding
+  constructor(optional DOMString message = "", optional DOMString name = "Error");
   readonly attribute DOMString name;
   readonly attribute DOMString message;
   readonly attribute unsigned short code;
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/cookie-store.idl b/third_party/blink/web_tests/external/wpt/interfaces/cookie-store.idl
index 533884f..c3204b2 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/cookie-store.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/cookie-store.idl
@@ -78,9 +78,9 @@
 typedef sequence<CookieListItem> CookieList;
 
 [Exposed=Window,
- SecureContext,
- Constructor(DOMString type, optional CookieChangeEventInit eventInitDict)]
+ SecureContext]
 interface CookieChangeEvent : Event {
+  constructor(DOMString type, optional CookieChangeEventInit eventInitDict = {});
   readonly attribute CookieList changed;
   readonly attribute CookieList deleted;
 };
@@ -90,9 +90,9 @@
   CookieList deleted;
 };
 
-[Exposed=ServiceWorker,
- Constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict)
+[Exposed=ServiceWorker
 ] interface ExtendableCookieChangeEvent : ExtendableEvent {
+  constructor(DOMString type, optional ExtendableCookieChangeEventInit eventInitDict = {});
   readonly attribute CookieList changed;
   readonly attribute CookieList deleted;
 };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/feature-policy.idl b/third_party/blink/web_tests/external/wpt/interfaces/feature-policy.idl
index 3ded1e9b..8560132 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/feature-policy.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/feature-policy.idl
@@ -18,6 +18,7 @@
 partial interface HTMLIFrameElement {
     [SameObject] readonly attribute FeaturePolicy featurePolicy;
 };
+[Exposed=Window]
 interface FeaturePolicyViolationReportBody : ReportBody {
   readonly attribute DOMString featureId;
   readonly attribute DOMString? sourceFile;
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl b/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl
index f529c450..eacc69d 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/fetch.idl
@@ -5,9 +5,10 @@
 
 typedef (sequence<sequence<ByteString>> or record<ByteString, ByteString>) HeadersInit;
 
-[Constructor(optional HeadersInit init),
- Exposed=(Window,Worker)]
+[Exposed=(Window,Worker)]
 interface Headers {
+  constructor(optional HeadersInit init);
+
   void append(ByteString name, ByteString value);
   void delete(ByteString name);
   ByteString? get(ByteString name);
@@ -15,6 +16,7 @@
   void set(ByteString name, ByteString value);
   iterable<ByteString, ByteString>;
 };
+
 typedef (Blob or BufferSource or FormData or URLSearchParams or ReadableStream or USVString) BodyInit;
 interface mixin Body {
   readonly attribute ReadableStream? body;
@@ -27,9 +29,10 @@
 };
 typedef (Request or USVString) RequestInfo;
 
-[Constructor(RequestInfo input, optional RequestInit init = {}),
- Exposed=(Window,Worker)]
+[Exposed=(Window,Worker)]
 interface Request {
+  constructor(RequestInfo input, optional RequestInit init = {});
+
   readonly attribute ByteString method;
   readonly attribute USVString url;
   [SameObject] readonly attribute Headers headers;
@@ -72,8 +75,10 @@
 enum RequestCredentials { "omit", "same-origin", "include" };
 enum RequestCache { "default", "no-store", "reload", "no-cache", "force-cache", "only-if-cached" };
 enum RequestRedirect { "follow", "error", "manual" };
-[Constructor(optional BodyInit? body = null, optional ResponseInit init = {}), Exposed=(Window,Worker)]
-interface Response {
+
+[Exposed=(Window,Worker)]interface Response {
+  constructor(optional BodyInit? body = null, optional ResponseInit init = {});
+
   [NewObject] static Response error();
   [NewObject] static Response redirect(USVString url, optional unsigned short status = 302);
 
@@ -98,6 +103,7 @@
 };
 
 enum ResponseType { "basic", "cors", "default", "error", "opaque", "opaqueredirect" };
+
 partial interface mixin WindowOrWorkerGlobalScope {
-  [NewObject] Promise<Response> fetch(RequestInfo input, optional RequestInit init);
+  [NewObject] Promise<Response> fetch(RequestInfo input, optional RequestInit init = {});
 };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/notifications.idl b/third_party/blink/web_tests/external/wpt/interfaces/notifications.idl
index 1a55c31b..d79e907 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/notifications.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/notifications.idl
@@ -3,9 +3,10 @@
 // (https://github.com/tidoust/reffy-reports)
 // Source: Notifications API Standard (https://notifications.spec.whatwg.org/)
 
-[Constructor(DOMString title, optional NotificationOptions options = {}),
- Exposed=(Window,Worker)]
+[Exposed=(Window,Worker)]
 interface Notification : EventTarget {
+  constructor(DOMString title, optional NotificationOptions options = {});
+
   static readonly attribute NotificationPermission permission;
   [Exposed=Window] static Promise<NotificationPermission> requestPermission(optional NotificationPermissionCallback deprecatedCallback);
 
@@ -81,9 +82,10 @@
   Promise<sequence<Notification>> getNotifications(optional GetNotificationOptions filter = {});
 };
 
-[Constructor(DOMString type, NotificationEventInit eventInitDict),
- Exposed=ServiceWorker]
+[Exposed=ServiceWorker]
 interface NotificationEvent : ExtendableEvent {
+  constructor(DOMString type, NotificationEventInit eventInitDict);
+
   readonly attribute Notification notification;
   readonly attribute DOMString action;
 };
diff --git a/third_party/blink/web_tests/external/wpt/interfaces/orientation-event.idl b/third_party/blink/web_tests/external/wpt/interfaces/orientation-event.idl
index a8eef51..af5bc54 100644
--- a/third_party/blink/web_tests/external/wpt/interfaces/orientation-event.idl
+++ b/third_party/blink/web_tests/external/wpt/interfaces/orientation-event.idl
@@ -7,8 +7,9 @@
     [SecureContext] attribute EventHandler ondeviceorientation;
 };
 
-[Constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict = {}), Exposed=Window, SecureContext]
+[Exposed=Window, SecureContext]
 interface DeviceOrientationEvent : Event {
+    constructor(DOMString type, optional DeviceOrientationEventInit eventInitDict = {});
     readonly attribute double? alpha;
     readonly attribute double? beta;
     readonly attribute double? gamma;
@@ -41,22 +42,23 @@
     [SecureContext] attribute EventHandler ondevicemotion;
 };
 
-[SecureContext]
+[Exposed=Window, SecureContext]
 interface DeviceMotionEventAcceleration {
     readonly attribute double? x;
     readonly attribute double? y;
     readonly attribute double? z;
 };
 
-[SecureContext]
+[Exposed=Window, SecureContext]
 interface DeviceMotionEventRotationRate {
     readonly attribute double? alpha;
     readonly attribute double? beta;
     readonly attribute double? gamma;
 };
 
-[Constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {}), Exposed=Window, SecureContext]
+[Exposed=Window, SecureContext]
 interface DeviceMotionEvent : Event {
+    constructor(DOMString type, optional DeviceMotionEventInit eventInitDict = {});
     readonly attribute DeviceMotionEventAcceleration? acceleration;
     readonly attribute DeviceMotionEventAcceleration? accelerationIncludingGravity;
     readonly attribute DeviceMotionEventRotationRate? rotationRate;
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js
deleted file mode 100644
index fd2ff88..0000000
--- a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemBaseHandle-remove.tentative.https.window.js
+++ /dev/null
@@ -1,76 +0,0 @@
-// META: script=resources/test-helpers.js
-promise_test(async t => cleanupSandboxedFileSystem(),
-    'Cleanup to setup test environment');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await createFileWithContents(t, 'file-to-remove', '12345', root);
-    await createFileWithContents(t, 'file-to-keep', 'abc', root);
-    await root.removeEntry('file-to-remove');
-
-    assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']);
-    await promise_rejects(t, 'NotFoundError', getFileContents(handle));
-}, 'removeEntry() to remove a file');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await createFileWithContents(t, 'file-to-remove', '12345', root);
-    await root.removeEntry('file-to-remove');
-
-    await promise_rejects(t, 'NotFoundError', root.removeEntry('file-to-remove'));
-}, 'removeEntry() on an already removed file should fail');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir = await root.getDirectory('dir-to-remove', { create: true });
-    await createFileWithContents(t, 'file-to-keep', 'abc', root);
-    await root.removeEntry('dir-to-remove');
-
-    assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']);
-    await promise_rejects(t, 'NotFoundError', getSortedDirectoryEntries(dir));
-}, 'removeEntry() to remove an empty directory');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir = await root.getDirectory('dir-to-remove', { create: true });
-    t.add_cleanup(() => root.removeEntry('dir-to-remove', { recursive: true }));
-    await createEmptyFile(t, 'file-in-dir', dir);
-
-    await promise_rejects(t, 'InvalidModificationError', root.removeEntry('dir-to-remove'));
-    assert_array_equals(await getSortedDirectoryEntries(root), ['dir-to-remove/']);
-    assert_array_equals(await getSortedDirectoryEntries(dir), ['file-in-dir']);
-}, 'removeEntry() on a non-empty directory should fail');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir = await createDirectory(t, 'dir', root);
-    await promise_rejects(t, new TypeError(), dir.removeEntry(""));
-}, 'removeEntry() with empty name should fail');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir = await createDirectory(t, 'dir', root);
-    await promise_rejects(t, new TypeError(), dir.removeEntry(kCurrentDirectory));
-}, `removeEntry() with "${kCurrentDirectory}" name should fail`);
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir = await createDirectory(t, 'dir', root);
-    await promise_rejects(t, new TypeError(), dir.removeEntry(kParentDirectory));
-}, `removeEntry() with "${kParentDirectory}" name should fail`);
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-    const dir_name = 'dir-name';
-    const dir = await createDirectory(t, dir_name, root);
-
-    const file_name = 'file-name';
-    await createEmptyFile(t, file_name, dir);
-
-    for (let i = 0; i < kPathSeparators.length; ++i) {
-        const path_with_separator = `${dir_name}${kPathSeparators[i]}${file_name}`;
-        await promise_rejects(t, new TypeError(), root.removeEntry(path_with_separator),
-            `removeEntry() must reject names containing "${kPathSeparators[i]}"`);
-    }
-}, 'removeEntry() with a path separator should fail.');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js
deleted file mode 100644
index 79154b0..0000000
--- a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getDirectory.tentative.https.window.js
+++ /dev/null
@@ -1,106 +0,0 @@
-// META: script=resources/test-helpers.js
-promise_test(async t => cleanupSandboxedFileSystem(),
-        'Cleanup to setup test environment');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, 'NotFoundError', root.getDirectory('non-existing-dir'));
-}, 'getDirectory(create=false) rejects for non-existing directories');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await root.getDirectory('non-existing-dir', { create: true });
-    t.add_cleanup(() => root.removeEntry('non-existing-dir', { recursive: true }));
-
-    assert_false(handle.isFile);
-    assert_true(handle.isDirectory);
-    assert_equals(handle.name, 'non-existing-dir');
-    assert_equals(await getDirectoryEntryCount(handle), 0);
-    assert_array_equals(await getSortedDirectoryEntries(root), ['non-existing-dir/']);
-}, 'getDirectory(create=true) creates an empty directory');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const existing_handle = await root.getDirectory('dir-with-contents', { create: true });
-    t.add_cleanup(() => root.removeEntry('dir-with-contents', { recursive: true }));
-    const file_handle = await createEmptyFile(t, 'test-file', existing_handle);
-
-    const handle = await root.getDirectory('dir-with-contents', { create: false });
-
-    assert_false(handle.isFile);
-    assert_true(handle.isDirectory);
-    assert_equals(handle.name, 'dir-with-contents');
-    assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']);
-}, 'getDirectory(create=false) returns existing directories');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const existing_handle = await root.getDirectory('dir-with-contents', { create: true });
-    t.add_cleanup(() => root.removeEntry('dir-with-contents', { recursive: true }));
-    const file_handle = await existing_handle.getFile('test-file', { create: true });
-
-    const handle = await root.getDirectory('dir-with-contents', { create: true });
-
-    assert_false(handle.isFile);
-    assert_true(handle.isDirectory);
-    assert_equals(handle.name, 'dir-with-contents');
-    assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']);
-}, 'getDirectory(create=true) returns existing directories without erasing');
-
-promise_test(async t => {
-    const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await createEmptyFile(t, 'file-name');
-
-    await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name'));
-    await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name', { create: false }));
-    await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name', { create: true }));
-}, 'getDirectory() when a file already exists with the same name');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, new TypeError(), dir.getDirectory("", { create: true }));
-    await promise_rejects(t, new TypeError(), dir.getDirectory("", { create: false }));
-}, 'getDirectory() with empty name');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, new TypeError(), dir.getDirectory(kCurrentDirectory));
-    await promise_rejects(t, new TypeError(), dir.getDirectory(kCurrentDirectory, { create: true }));
-}, `getDirectory() with "${kCurrentDirectory}" name`);
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const subdir = await createDirectory(t, 'subdir-name', /*parent=*/dir);
-
-    await promise_rejects(t, new TypeError(), subdir.getDirectory(kParentDirectory));
-    await promise_rejects(t, new TypeError(), subdir.getDirectory(kParentDirectory, { create: true }));
-}, `getDirectory() with "${kParentDirectory}" name`);
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-    const first_subdir_name = 'first-subdir-name';
-    const first_subdir = await createDirectory(t, first_subdir_name, /*parent=*/dir);
-
-    const second_subdir_name = 'second-subdir-name';
-    const second_subdir = await createDirectory(t, second_subdir_name, /*parent=*/first_subdir);
-
-    for (let i = 0; i < kPathSeparators.length; ++i) {
-        const path_with_separator = `${first_subdir_name}${kPathSeparators[i]}${second_subdir_name}`;
-        await promise_rejects(t, new TypeError(), dir.getDirectory(path_with_separator),
-            `getDirectory() must reject names containing "${kPathSeparators[i]}"`);
-    }
-}, 'getDirectory(create=false) with a path separator when the directory exists');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-    const subdir_name = 'subdir-name';
-    const subdir = await createDirectory(t, subdir_name, /*parent=*/dir);
-
-    for (let i = 0; i < kPathSeparators.length; ++i) {
-        const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`;
-        await promise_rejects(t, new TypeError(), dir.getDirectory(path_with_separator, { create: true }),
-            `getDirectory(true) must reject names containing "${kPathSeparators[i]}"`);
-    }
-}, 'getDirectory(create=true) with a path separator');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js
deleted file mode 100644
index fa38abb..0000000
--- a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemDirectoryHandle-getFile.tentative.https.window.js
+++ /dev/null
@@ -1,111 +0,0 @@
-// META: script=resources/test-helpers.js
-promise_test(async t => cleanupSandboxedFileSystem(),
-  'Cleanup to setup test environment');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, 'NotFoundError', dir.getFile('non-existing-file'));
-}, 'getFile(create=false) rejects for non-existing files');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await dir.getFile('non-existing-file', { create: true });
-    t.add_cleanup(() => dir.removeEntry('non-existing-file'));
-
-    assert_true(handle.isFile);
-    assert_false(handle.isDirectory);
-    assert_equals(handle.name, 'non-existing-file');
-    assert_equals(await getFileSize(handle), 0);
-    assert_equals(await getFileContents(handle), '');
-}, 'getFile(create=true) creates an empty file for non-existing files');
-
-promise_test(async t => {
-    const existing_handle = await createFileWithContents(t, 'existing-file', '1234567890');
-
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await dir.getFile('existing-file');
-
-    assert_true(handle.isFile);
-    assert_false(handle.isDirectory);
-    assert_equals(handle.name, 'existing-file');
-    assert_equals(await getFileSize(handle), 10);
-    assert_equals(await getFileContents(handle), '1234567890');
-}, 'getFile(create=false) returns existing files');
-
-promise_test(async t => {
-    const existing_handle = await createFileWithContents(t, 'file-with-contents', '1234567890');
-
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await dir.getFile('file-with-contents', { create: true });
-
-    assert_true(handle.isFile);
-    assert_false(handle.isDirectory);
-    assert_equals(handle.name, 'file-with-contents');
-    assert_equals(await getFileSize(handle), 10);
-    assert_equals(await getFileContents(handle), '1234567890');
-}, 'getFile(create=true) returns existing files without erasing');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir_handle = await dir.getDirectory('dir-name', { create: true });
-    t.add_cleanup(() => dir.removeEntry('dir-name', { recursive: true }));
-
-    await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name'));
-}, 'getFile(create=false) when a directory already exists with the same name');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const dir_handle = await dir.getDirectory('dir-name', { create: true });
-    t.add_cleanup(() => dir.removeEntry('dir-name', { recursive: true }));
-
-    await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name', { create: true }));
-}, 'getFile(create=true) when a directory already exists with the same name');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, new TypeError(), dir.getFile("", { create: true }));
-    await promise_rejects(t, new TypeError(), dir.getFile("", { create: false }));
-}, 'getFile() with empty name');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory));
-    await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory, { create: true }));
-}, `getFile() with "${kCurrentDirectory}" name`);
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const subdir = await createDirectory(t, 'subdir-name', /*parent=*/dir);
-
-    await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory));
-    await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory, { create: true }));
-}, `getFile() with "${kParentDirectory}" name`);
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-    const subdir_name = 'subdir-name';
-    const subdir = await createDirectory(t, subdir_name, /*parent=*/dir);
-
-    const file_name = 'file-name';
-    await createEmptyFile(t, file_name, /*parent=*/subdir);
-
-    for (let i = 0; i < kPathSeparators.length; ++i) {
-        const path_with_separator = `${subdir_name}${kPathSeparators[i]}${file_name}`;
-        await promise_rejects(t, new TypeError(), dir.getFile(path_with_separator),
-            `getFile() must reject names containing "${kPathSeparators[i]}"`);
-    }
-}, 'getFile(create=false) with a path separator when the file exists.');
-
-promise_test(async t => {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-    const subdir_name = 'subdir-name';
-    const subdir = await createDirectory(t, subdir_name, /*parent=*/dir);
-
-    for (let i = 0; i < kPathSeparators.length; ++i) {
-        const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`;
-        await promise_rejects(t, new TypeError(), dir.getFile(path_with_separator, { create: true }),
-            `getFile(true) must reject names containing "${kPathSeparators[i]}"`);
-    }
-}, 'getFile(create=true) with a path separator');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js
new file mode 100644
index 0000000..cfe729cd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getDirectory.tentative.https.manual.window.js
@@ -0,0 +1,4 @@
+// META: script=/resources/testdriver.js
+// META: script=resources/test-helpers.js
+// META: script=resources/native-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-getDirectory.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js
new file mode 100644
index 0000000..0455cb80
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-getFile.tentative.https.manual.window.js
@@ -0,0 +1,4 @@
+// META: script=/resources/testdriver.js
+// META: script=resources/test-helpers.js
+// META: script=resources/native-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-getFile.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js
new file mode 100644
index 0000000..8905a7af
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemDirectoryHandle-removeEntry.tentative.https.manual.window.js
@@ -0,0 +1,4 @@
+// META: script=/resources/testdriver.js
+// META: script=resources/test-helpers.js
+// META: script=resources/native-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-removeEntry.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js
new file mode 100644
index 0000000..25d8ee9
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/native_FileSystemWriter.tentative.https.manual.window.js
@@ -0,0 +1,4 @@
+// META: script=/resources/testdriver.js
+// META: script=resources/test-helpers.js
+// META: script=resources/native-fs-test-helpers.js
+// META: script=script-tests/FileSystemWriter.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/resources/native-fs-test-helpers.js b/third_party/blink/web_tests/external/wpt/native-file-system/resources/native-fs-test-helpers.js
new file mode 100644
index 0000000..5ad8c04
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/resources/native-fs-test-helpers.js
@@ -0,0 +1,49 @@
+// This file defines a directory_test() function that can be used to define
+// tests that require a FileSystemDirectoryHandle. The implementation of that
+// function in this file will ask the user to select an empty directory and
+// uses that directory.
+//
+// Another implementation of this function exists in
+// sandboxed-fs-test-helpers.js, where that version uses the sandboxed file
+// system instead.
+
+const directory_promise = (async () => {
+  await new Promise(resolve => {
+    window.addEventListener('DOMContentLoaded', resolve);
+  });
+
+  await window.test_driver.bless(
+      'show a file picker.<br />Please select an empty directory');
+  const entries = await self.chooseFileSystemEntries({type: 'openDirectory'});
+  assert_true(entries instanceof FileSystemHandle);
+  assert_true(entries instanceof FileSystemDirectoryHandle);
+  for await (const entry of entries.getEntries()) {
+    assert_unreached('Selected directory is not empty');
+  }
+  return entries;
+})();
+
+function directory_test(func, description) {
+  promise_test(async t => {
+    const directory = await directory_promise;
+    // To be resilient against tests not cleaning up properly, cleanup before
+    // every test.
+    for await (let entry of directory.getEntries()) {
+      await directory.removeEntry(entry.name, {recursive: entry.isDirectory});
+    }
+    await func(t, directory);
+  }, description);
+}
+
+directory_test(async (t, dir) => {
+  assert_equals(await dir.queryPermission({writable: false}), 'granted');
+}, 'User succesfully selected an empty directory.');
+
+directory_test(async (t, dir) => {
+  const status = await dir.queryPermission({writable: true});
+  if (status == 'granted')
+    return;
+
+  await window.test_driver.bless('ask for write permission');
+  assert_equals(await dir.requestPermission({writable: true}), 'granted');
+}, 'User granted write access.');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/resources/sandboxed-fs-test-helpers.js b/third_party/blink/web_tests/external/wpt/native-file-system/resources/sandboxed-fs-test-helpers.js
new file mode 100644
index 0000000..5f4f269
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/resources/sandboxed-fs-test-helpers.js
@@ -0,0 +1,25 @@
+// This file defines a directory_test() function that can be used to define
+// tests that require a FileSystemDirectoryHandle. The implementation of that
+// function in this file will return an empty directory in the sandboxed file
+// system.
+//
+// Another implementation of this function exists in native-fs-test-helpers.js,
+// where that version uses the native file system instead.
+
+async function cleanupSandboxedFileSystem() {
+  const dir =
+      await FileSystemDirectoryHandle.getSystemDirectory({type: 'sandbox'});
+  for await (let entry of dir.getEntries())
+    await dir.removeEntry(entry.name, {recursive: entry.isDirectory});
+}
+
+function directory_test(func, description) {
+  promise_test(async t => {
+    // To be extra resilient against bad tests, cleanup before every test.
+    await cleanupSandboxedFileSystem();
+
+    const dir =
+        await FileSystemDirectoryHandle.getSystemDirectory({type: 'sandbox'});
+    await func(t, dir);
+  }, description);
+}
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/resources/test-helpers.js b/third_party/blink/web_tests/external/wpt/native-file-system/resources/test-helpers.js
index b794cee..d036092 100644
--- a/third_party/blink/web_tests/external/wpt/native-file-system/resources/test-helpers.js
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/resources/test-helpers.js
@@ -1,95 +1,87 @@
 // A special path component meaning "this directory."
-const kCurrentDirectory = ".";
+const kCurrentDirectory = '.';
 
 // A special path component meaning "the parent directory."
-const kParentDirectory = "..";
+const kParentDirectory = '..';
 
 // Array of separators used to separate components in hierarchical paths.
 let kPathSeparators;
-if (navigator.userAgent.includes("Windows NT")) {
-    // Windows uses both '/' and '\' as path separators.
-    kPathSeparators = ['/', '\\' ];
+if (navigator.userAgent.includes('Windows NT')) {
+  // Windows uses both '/' and '\' as path separators.
+  kPathSeparators = ['/', '\\'];
 } else {
-    kPathSeparators = [ '/' ];
-}
-
-async function cleanupSandboxedFileSystem() {
-    const dir = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    for await (let entry of dir.getEntries())
-        dir.removeEntry(entry.name, { recursive: entry.isDirectory });
+  kPathSeparators = ['/'];
 }
 
 async function getFileSize(handle) {
-    const file = await handle.getFile();
-    return file.size;
+  const file = await handle.getFile();
+  return file.size;
 }
 
 async function getFileContents(handle) {
-    const file = await handle.getFile();
-    return new Response(file).text();
+  const file = await handle.getFile();
+  return new Response(file).text();
 }
 
 async function getDirectoryEntryCount(handle) {
-    let result = 0;
-    for await (let entry of handle.getEntries()) {
-        result++;
-    }
-    return result;
+  let result = 0;
+  for await (let entry of handle.getEntries()) {
+    result++;
+  }
+  return result;
 }
 
 async function getSortedDirectoryEntries(handle) {
-    let result = [];
-    for await (let entry of handle.getEntries()) {
-        if (entry.isDirectory)
-            result.push(entry.name + '/');
-        else
-            result.push(entry.name);
-    }
-    result.sort();
-    return result;
+  let result = [];
+  for await (let entry of handle.getEntries()) {
+    if (entry.isDirectory)
+      result.push(entry.name + '/');
+    else
+      result.push(entry.name);
+  }
+  result.sort();
+  return result;
 }
 
 async function createDirectory(test, name, parent) {
-  const parent_dir_handle = parent ? parent :
-      await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-
-  const new_dir_handle = await parent_dir_handle.getDirectory(name, { create: true });
+  const new_dir_handle = await parent.getDirectory(name, {create: true});
   test.add_cleanup(async () => {
-        try {
-            await parent_dir_handle.removeEntry(name, { recursive: true });
-        } catch (e) {
-            // Ignore any errors when removing directories, as tests might
-            // have already removed the directory.
-        }
+    try {
+      await parent.removeEntry(name, {recursive: true});
+    } catch (e) {
+      // Ignore any errors when removing directories, as tests might
+      // have already removed the directory.
+    }
   });
   return new_dir_handle;
 }
 
 async function createEmptyFile(test, name, parent) {
-    const dir = parent ? parent : await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
-    const handle = await dir.getFile(name, { create: true });
-    test.add_cleanup(async () => {
-        try {
-            await dir.removeEntry(name);
-        } catch (e) {
-            // Ignore any errors when removing files, as tests might already remove the file.
-        }
-    });
-    // Make sure the file is empty.
-    assert_equals(await getFileSize(handle), 0);
-    return handle;
+  const handle = await parent.getFile(name, {create: true});
+  test.add_cleanup(async () => {
+    try {
+      await parent.removeEntry(name);
+    } catch (e) {
+      // Ignore any errors when removing files, as tests might already remove
+      // the file.
+    }
+  });
+  // Make sure the file is empty.
+  assert_equals(await getFileSize(handle), 0);
+  return handle;
 }
 
 async function createFileWithContents(test, name, contents, parent) {
-    const handle = await createEmptyFile(test, name, parent);
-    const writer = await handle.createWriter();
-    await writer.write(0, new Blob([contents]));
-    await writer.close();
-    return handle;
+  const handle = await createEmptyFile(test, name, parent);
+  const writer = await handle.createWriter();
+  await writer.write(0, new Blob([contents]));
+  await writer.close();
+  return handle;
 }
 
 function garbageCollect() {
-    // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to
-    // some sort of cross-browser GC trigger.
-    if (self.gc) self.gc();
+  // TODO(https://github.com/web-platform-tests/wpt/issues/7899): Change to
+  // some sort of cross-browser GC trigger.
+  if (self.gc)
+    self.gc();
 };
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js
new file mode 100644
index 0000000..6fcf566
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getDirectory.tentative.https.any.js
@@ -0,0 +1,3 @@
+// META: script=resources/test-helpers.js
+// META: script=resources/sandboxed-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-getDirectory.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js
new file mode 100644
index 0000000..65ae891
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-getFile.tentative.https.any.js
@@ -0,0 +1,3 @@
+// META: script=resources/test-helpers.js
+// META: script=resources/sandboxed-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-getFile.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js
new file mode 100644
index 0000000..a4be8bd
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemDirectoryHandle-removeEntry.tentative.https.any.js
@@ -0,0 +1,3 @@
+// META: script=resources/test-helpers.js
+// META: script=resources/sandboxed-fs-test-helpers.js
+// META: script=script-tests/FileSystemDirectoryHandle-removeEntry.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js
new file mode 100644
index 0000000..8352e24
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/sandboxed_FileSystemWriter.tentative.https.any.js
@@ -0,0 +1,3 @@
+// META: script=resources/test-helpers.js
+// META: script=resources/sandboxed-fs-test-helpers.js
+// META: script=script-tests/FileSystemWriter.js
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js
new file mode 100644
index 0000000..c2c128f
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getDirectory.js
@@ -0,0 +1,111 @@
+directory_test(async (t, root) => {
+  await promise_rejects(
+      t, 'NotFoundError', root.getDirectory('non-existing-dir'));
+}, 'getDirectory(create=false) rejects for non-existing directories');
+
+directory_test(async (t, root) => {
+  const handle = await root.getDirectory('non-existing-dir', {create: true});
+  t.add_cleanup(() => root.removeEntry('non-existing-dir', {recursive: true}));
+
+  assert_false(handle.isFile);
+  assert_true(handle.isDirectory);
+  assert_equals(handle.name, 'non-existing-dir');
+  assert_equals(await getDirectoryEntryCount(handle), 0);
+  assert_array_equals(
+      await getSortedDirectoryEntries(root), ['non-existing-dir/']);
+}, 'getDirectory(create=true) creates an empty directory');
+
+directory_test(async (t, root) => {
+  const existing_handle =
+      await root.getDirectory('dir-with-contents', {create: true});
+  t.add_cleanup(() => root.removeEntry('dir-with-contents', {recursive: true}));
+  const file_handle = await createEmptyFile(t, 'test-file', existing_handle);
+
+  const handle = await root.getDirectory('dir-with-contents', {create: false});
+
+  assert_false(handle.isFile);
+  assert_true(handle.isDirectory);
+  assert_equals(handle.name, 'dir-with-contents');
+  assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']);
+}, 'getDirectory(create=false) returns existing directories');
+
+directory_test(async (t, root) => {
+  const existing_handle =
+      await root.getDirectory('dir-with-contents', {create: true});
+  t.add_cleanup(() => root.removeEntry('dir-with-contents', {recursive: true}));
+  const file_handle =
+      await existing_handle.getFile('test-file', {create: true});
+
+  const handle = await root.getDirectory('dir-with-contents', {create: true});
+
+  assert_false(handle.isFile);
+  assert_true(handle.isDirectory);
+  assert_equals(handle.name, 'dir-with-contents');
+  assert_array_equals(await getSortedDirectoryEntries(handle), ['test-file']);
+}, 'getDirectory(create=true) returns existing directories without erasing');
+
+directory_test(async (t, root) => {
+  await createEmptyFile(t, 'file-name', root);
+
+  await promise_rejects(t, 'TypeMismatchError', root.getDirectory('file-name'));
+  await promise_rejects(
+      t, 'TypeMismatchError', root.getDirectory('file-name', {create: false}));
+  await promise_rejects(
+      t, 'TypeMismatchError', root.getDirectory('file-name', {create: true}));
+}, 'getDirectory() when a file already exists with the same name');
+
+directory_test(async (t, dir) => {
+  await promise_rejects(
+      t, new TypeError(), dir.getDirectory('', {create: true}));
+  await promise_rejects(
+      t, new TypeError(), dir.getDirectory('', {create: false}));
+}, 'getDirectory() with empty name');
+
+directory_test(async (t, dir) => {
+  await promise_rejects(
+      t, new TypeError(), dir.getDirectory(kCurrentDirectory));
+  await promise_rejects(
+      t, new TypeError(), dir.getDirectory(kCurrentDirectory, {create: true}));
+}, `getDirectory() with "${kCurrentDirectory}" name`);
+
+directory_test(async (t, dir) => {
+  const subdir = await createDirectory(t, 'subdir-name', /*parent=*/ dir);
+
+  await promise_rejects(
+      t, new TypeError(), subdir.getDirectory(kParentDirectory));
+  await promise_rejects(
+      t, new TypeError(),
+      subdir.getDirectory(kParentDirectory, {create: true}));
+}, `getDirectory() with "${kParentDirectory}" name`);
+
+directory_test(async (t, dir) => {
+  const first_subdir_name = 'first-subdir-name';
+  const first_subdir =
+      await createDirectory(t, first_subdir_name, /*parent=*/ dir);
+
+  const second_subdir_name = 'second-subdir-name';
+  const second_subdir =
+      await createDirectory(t, second_subdir_name, /*parent=*/ first_subdir);
+
+  for (let i = 0; i < kPathSeparators.length; ++i) {
+    const path_with_separator =
+        `${first_subdir_name}${kPathSeparators[i]}${second_subdir_name}`;
+    await promise_rejects(
+        t, new TypeError(), dir.getDirectory(path_with_separator),
+        `getDirectory() must reject names containing "${kPathSeparators[i]}"`);
+  }
+}, 'getDirectory(create=false) with a path separator when the directory exists');
+
+directory_test(async (t, dir) => {
+  const subdir_name = 'subdir-name';
+  const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir);
+
+  for (let i = 0; i < kPathSeparators.length; ++i) {
+    const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`;
+    await promise_rejects(
+        t, new TypeError(),
+        dir.getDirectory(path_with_separator, {create: true}),
+        `getDirectory(true) must reject names containing "${
+            kPathSeparators[i]}"`);
+  }
+}, 'getDirectory(create=true) with a path separator');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js
new file mode 100644
index 0000000..4d8ee96
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-getFile.js
@@ -0,0 +1,100 @@
+directory_test(async (t, dir) => {
+  await promise_rejects(t, 'NotFoundError', dir.getFile('non-existing-file'));
+}, 'getFile(create=false) rejects for non-existing files');
+
+directory_test(async (t, dir) => {
+  const handle = await dir.getFile('non-existing-file', {create: true});
+  t.add_cleanup(() => dir.removeEntry('non-existing-file'));
+
+  assert_true(handle.isFile);
+  assert_false(handle.isDirectory);
+  assert_equals(handle.name, 'non-existing-file');
+  assert_equals(await getFileSize(handle), 0);
+  assert_equals(await getFileContents(handle), '');
+}, 'getFile(create=true) creates an empty file for non-existing files');
+
+directory_test(async (t, dir) => {
+  const existing_handle = await createFileWithContents(
+      t, 'existing-file', '1234567890', /*parent=*/ dir);
+  const handle = await dir.getFile('existing-file');
+
+  assert_true(handle.isFile);
+  assert_false(handle.isDirectory);
+  assert_equals(handle.name, 'existing-file');
+  assert_equals(await getFileSize(handle), 10);
+  assert_equals(await getFileContents(handle), '1234567890');
+}, 'getFile(create=false) returns existing files');
+
+directory_test(async (t, dir) => {
+  const existing_handle = await createFileWithContents(
+      t, 'file-with-contents', '1234567890', /*parent=*/ dir);
+  const handle = await dir.getFile('file-with-contents', {create: true});
+
+  assert_true(handle.isFile);
+  assert_false(handle.isDirectory);
+  assert_equals(handle.name, 'file-with-contents');
+  assert_equals(await getFileSize(handle), 10);
+  assert_equals(await getFileContents(handle), '1234567890');
+}, 'getFile(create=true) returns existing files without erasing');
+
+directory_test(async (t, dir) => {
+  const dir_handle = await dir.getDirectory('dir-name', {create: true});
+  t.add_cleanup(() => dir.removeEntry('dir-name', {recursive: true}));
+
+  await promise_rejects(t, 'TypeMismatchError', dir.getFile('dir-name'));
+}, 'getFile(create=false) when a directory already exists with the same name');
+
+directory_test(async (t, dir) => {
+  const dir_handle = await dir.getDirectory('dir-name', {create: true});
+  t.add_cleanup(() => dir.removeEntry('dir-name', {recursive: true}));
+
+  await promise_rejects(
+      t, 'TypeMismatchError', dir.getFile('dir-name', {create: true}));
+}, 'getFile(create=true) when a directory already exists with the same name');
+
+directory_test(async (t, dir) => {
+  await promise_rejects(t, new TypeError(), dir.getFile('', {create: true}));
+  await promise_rejects(t, new TypeError(), dir.getFile('', {create: false}));
+}, 'getFile() with empty name');
+
+directory_test(async (t, dir) => {
+  await promise_rejects(t, new TypeError(), dir.getFile(kCurrentDirectory));
+  await promise_rejects(
+      t, new TypeError(), dir.getFile(kCurrentDirectory, {create: true}));
+}, `getFile() with "${kCurrentDirectory}" name`);
+
+directory_test(async (t, dir) => {
+  const subdir = await createDirectory(t, 'subdir-name', /*parent=*/ dir);
+
+  await promise_rejects(t, new TypeError(), subdir.getFile(kParentDirectory));
+  await promise_rejects(
+      t, new TypeError(), subdir.getFile(kParentDirectory, {create: true}));
+}, `getFile() with "${kParentDirectory}" name`);
+
+directory_test(async (t, dir) => {
+  const subdir_name = 'subdir-name';
+  const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir);
+
+  const file_name = 'file-name';
+  await createEmptyFile(t, file_name, /*parent=*/ subdir);
+
+  for (let i = 0; i < kPathSeparators.length; ++i) {
+    const path_with_separator =
+        `${subdir_name}${kPathSeparators[i]}${file_name}`;
+    await promise_rejects(
+        t, new TypeError(), dir.getFile(path_with_separator),
+        `getFile() must reject names containing "${kPathSeparators[i]}"`);
+  }
+}, 'getFile(create=false) with a path separator when the file exists.');
+
+directory_test(async (t, dir) => {
+  const subdir_name = 'subdir-name';
+  const subdir = await createDirectory(t, subdir_name, /*parent=*/ dir);
+
+  for (let i = 0; i < kPathSeparators.length; ++i) {
+    const path_with_separator = `${subdir_name}${kPathSeparators[i]}file_name`;
+    await promise_rejects(
+        t, new TypeError(), dir.getFile(path_with_separator, {create: true}),
+        `getFile(true) must reject names containing "${kPathSeparators[i]}"`);
+  }
+}, 'getFile(create=true) with a path separator');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js
new file mode 100644
index 0000000..8e89e09
--- /dev/null
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemDirectoryHandle-removeEntry.js
@@ -0,0 +1,69 @@
+
+directory_test(async (t, root) => {
+  const handle =
+      await createFileWithContents(t, 'file-to-remove', '12345', root);
+  await createFileWithContents(t, 'file-to-keep', 'abc', root);
+  await root.removeEntry('file-to-remove');
+
+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']);
+  await promise_rejects(t, 'NotFoundError', getFileContents(handle));
+}, 'removeEntry() to remove a file');
+
+directory_test(async (t, root) => {
+  const handle =
+      await createFileWithContents(t, 'file-to-remove', '12345', root);
+  await root.removeEntry('file-to-remove');
+
+  await promise_rejects(t, 'NotFoundError', root.removeEntry('file-to-remove'));
+}, 'removeEntry() on an already removed file should fail');
+
+directory_test(async (t, root) => {
+  const dir = await root.getDirectory('dir-to-remove', {create: true});
+  await createFileWithContents(t, 'file-to-keep', 'abc', root);
+  await root.removeEntry('dir-to-remove');
+
+  assert_array_equals(await getSortedDirectoryEntries(root), ['file-to-keep']);
+  await promise_rejects(t, 'NotFoundError', getSortedDirectoryEntries(dir));
+}, 'removeEntry() to remove an empty directory');
+
+directory_test(async (t, root) => {
+  const dir = await root.getDirectory('dir-to-remove', {create: true});
+  t.add_cleanup(() => root.removeEntry('dir-to-remove', {recursive: true}));
+  await createEmptyFile(t, 'file-in-dir', dir);
+
+  await promise_rejects(
+      t, 'InvalidModificationError', root.removeEntry('dir-to-remove'));
+  assert_array_equals(
+      await getSortedDirectoryEntries(root), ['dir-to-remove/']);
+  assert_array_equals(await getSortedDirectoryEntries(dir), ['file-in-dir']);
+}, 'removeEntry() on a non-empty directory should fail');
+
+directory_test(async (t, root) => {
+  const dir = await createDirectory(t, 'dir', root);
+  await promise_rejects(t, new TypeError(), dir.removeEntry(''));
+}, 'removeEntry() with empty name should fail');
+
+directory_test(async (t, root) => {
+  const dir = await createDirectory(t, 'dir', root);
+  await promise_rejects(t, new TypeError(), dir.removeEntry(kCurrentDirectory));
+}, `removeEntry() with "${kCurrentDirectory}" name should fail`);
+
+directory_test(async (t, root) => {
+  const dir = await createDirectory(t, 'dir', root);
+  await promise_rejects(t, new TypeError(), dir.removeEntry(kParentDirectory));
+}, `removeEntry() with "${kParentDirectory}" name should fail`);
+
+directory_test(async (t, root) => {
+  const dir_name = 'dir-name';
+  const dir = await createDirectory(t, dir_name, root);
+
+  const file_name = 'file-name';
+  await createEmptyFile(t, file_name, dir);
+
+  for (let i = 0; i < kPathSeparators.length; ++i) {
+    const path_with_separator = `${dir_name}${kPathSeparators[i]}${file_name}`;
+    await promise_rejects(
+        t, new TypeError(), root.removeEntry(path_with_separator),
+        `removeEntry() must reject names containing "${kPathSeparators[i]}"`);
+  }
+}, 'removeEntry() with a path separator should fail.');
diff --git a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemWriter.tentative.https.window.js b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemWriter.js
similarity index 62%
rename from third_party/blink/web_tests/external/wpt/native-file-system/FileSystemWriter.tentative.https.window.js
rename to third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemWriter.js
index acc0be1..1c51d0b 100644
--- a/third_party/blink/web_tests/external/wpt/native-file-system/FileSystemWriter.tentative.https.window.js
+++ b/third_party/blink/web_tests/external/wpt/native-file-system/script-tests/FileSystemWriter.js
@@ -1,54 +1,51 @@
-// META: script=resources/test-helpers.js
-promise_test(async t => cleanupSandboxedFileSystem(),
-    'Cleanup to setup test environment');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'empty_blob', root);
+  const writer = await handle.createWriter();
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'empty_blob');
-    const writer = await handle.createWriter();
+  await writer.write(0, new Blob([]));
+  await writer.close();
 
-    await writer.write(0, new Blob([]));
-    await writer.close();
-
-    assert_equals(await getFileContents(handle), '');
-    assert_equals(await getFileSize(handle), 0);
+  assert_equals(await getFileContents(handle), '');
+  assert_equals(await getFileSize(handle), 0);
 }, 'write() with an empty blob to an empty file');
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'valid_blob');
-    const writer = await handle.createWriter();
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'valid_blob', root);
+  const writer = await handle.createWriter();
 
-    await writer.write(0, new Blob(['1234567890']));
-    await writer.close();
+  await writer.write(0, new Blob(['1234567890']));
+  await writer.close();
 
-    assert_equals(await getFileContents(handle), '1234567890');
-    assert_equals(await getFileSize(handle), 10);
+  assert_equals(await getFileContents(handle), '1234567890');
+  assert_equals(await getFileSize(handle), 10);
 }, 'write() a blob to an empty file');
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'blob_with_offset');
-    const writer = await handle.createWriter();
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'blob_with_offset', root);
+  const writer = await handle.createWriter();
 
-    await writer.write(0, new Blob(['1234567890']));
-    await writer.write(4, new Blob(['abc']));
-    await writer.close();
+  await writer.write(0, new Blob(['1234567890']));
+  await writer.write(4, new Blob(['abc']));
+  await writer.close();
 
-    assert_equals(await getFileContents(handle), '1234abc890');
-    assert_equals(await getFileSize(handle), 10);
+  assert_equals(await getFileContents(handle), '1234abc890');
+  assert_equals(await getFileSize(handle), 10);
 }, 'write() called with a blob and a valid offset');
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'bad_offset');
-    const writer = await handle.createWriter();
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'bad_offset', root);
+  const writer = await handle.createWriter();
 
-    await promise_rejects(t, 'InvalidStateError', writer.write(4, new Blob(['abc'])));
-    await writer.close();
+  await promise_rejects(
+      t, 'InvalidStateError', writer.write(4, new Blob(['abc'])));
+  await writer.close();
 
-    assert_equals(await getFileContents(handle), '');
-    assert_equals(await getFileSize(handle), 0);
+  assert_equals(await getFileContents(handle), '');
+  assert_equals(await getFileSize(handle), 0);
 }, 'write() called with an invalid offset');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'empty_string');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'empty_string', root);
   const writer = await handle.createWriter();
 
   await writer.write(0, '');
@@ -57,8 +54,8 @@
   assert_equals(await getFileSize(handle), 0);
 }, 'write() with an empty string to an empty file');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'valid_utf8_string');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'valid_utf8_string', root);
   const writer = await handle.createWriter();
 
   await writer.write(0, 'foo🤘');
@@ -67,8 +64,8 @@
   assert_equals(await getFileSize(handle), 7);
 }, 'write() with a valid utf-8 string');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'string_with_unix_line_ending');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'string_with_unix_line_ending', root);
   const writer = await handle.createWriter();
 
   await writer.write(0, 'foo\n');
@@ -77,8 +74,9 @@
   assert_equals(await getFileSize(handle), 4);
 }, 'write() with a string with unix line ending preserved');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'string_with_windows_line_ending');
+directory_test(async (t, root) => {
+  const handle =
+      await createEmptyFile(t, 'string_with_windows_line_ending', root);
   const writer = await handle.createWriter();
 
   await writer.write(0, 'foo\r\n');
@@ -87,8 +85,8 @@
   assert_equals(await getFileSize(handle), 5);
 }, 'write() with a string with windows line ending preserved');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'empty_array_buffer');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'empty_array_buffer', root);
   const writer = await handle.createWriter();
 
   let buf = new ArrayBuffer(0);
@@ -98,8 +96,9 @@
   assert_equals(await getFileSize(handle), 0);
 }, 'write() with an empty array buffer to an empty file');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'valid_string_typed_byte_array');
+directory_test(async (t, root) => {
+  const handle =
+      await createEmptyFile(t, 'valid_string_typed_byte_array', root);
   const writer = await handle.createWriter();
 
   let buf = new ArrayBuffer(3);
@@ -113,32 +112,31 @@
   assert_equals(await getFileSize(handle), 3);
 }, 'write() with a valid typed array buffer');
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'trunc_shrink');
-    const writer = await handle.createWriter();
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'trunc_shrink', root);
+  const writer = await handle.createWriter();
 
-    await writer.write(0, new Blob(['1234567890']));
-    await writer.truncate(5);
-    await writer.close();
+  await writer.write(0, new Blob(['1234567890']));
+  await writer.truncate(5);
+  await writer.close();
 
-    assert_equals(await getFileContents(handle), '12345');
-    assert_equals(await getFileSize(handle), 5);
+  assert_equals(await getFileContents(handle), '12345');
+  assert_equals(await getFileSize(handle), 5);
 }, 'truncate() to shrink a file');
 
-promise_test(async t => {
-    const handle = await createEmptyFile(t, 'trunc_grow');
-    const writer = await handle.createWriter();
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'trunc_grow', root);
+  const writer = await handle.createWriter();
 
-    await writer.write(0, new Blob(['abc']));
-    await writer.truncate(5);
-    await writer.close();
+  await writer.write(0, new Blob(['abc']));
+  await writer.truncate(5);
+  await writer.close();
 
-    assert_equals(await getFileContents(handle), 'abc\0\0');
-    assert_equals(await getFileSize(handle), 5);
+  assert_equals(await getFileContents(handle), 'abc\0\0');
+  assert_equals(await getFileSize(handle), 5);
 }, 'truncate() to grow a file');
 
-promise_test(async t => {
-  const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
+directory_test(async (t, root) => {
   const dir = await createDirectory(t, 'parent_dir', root);
   const file_name = 'create_writer_fails_when_dir_removed.txt';
   const handle = await createEmptyFile(t, file_name, dir);
@@ -147,8 +145,7 @@
   await promise_rejects(t, 'NotFoundError', handle.createWriter());
 }, 'createWriter() fails when parent directory is removed');
 
-promise_test(async t => {
-  const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
+directory_test(async (t, root) => {
   const dir = await createDirectory(t, 'parent_dir', root);
   const file_name = 'write_fails_when_dir_removed.txt';
   const handle = await createEmptyFile(t, file_name, dir);
@@ -158,8 +155,7 @@
   await promise_rejects(t, 'NotFoundError', writer.write(0, new Blob(['foo'])));
 }, 'write() fails when parent directory is removed');
 
-promise_test(async t => {
-  const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
+directory_test(async (t, root) => {
   const dir = await createDirectory(t, 'parent_dir', root);
   const file_name = 'truncate_fails_when_dir_removed.txt';
   const handle = await createEmptyFile(t, file_name, dir);
@@ -169,8 +165,7 @@
   await promise_rejects(t, 'NotFoundError', writer.truncate(0));
 }, 'truncate() fails when parent directory is removed');
 
-promise_test(async t => {
-  const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
+directory_test(async (t, root) => {
   const dir = await createDirectory(t, 'parent_dir', root);
   const file_name = 'close_fails_when_dir_removed.txt';
   const handle = await createEmptyFile(t, file_name, dir);
@@ -181,8 +176,8 @@
   await promise_rejects(t, 'NotFoundError', writer.close());
 }, 'atomic writes: close() fails when parent directory is removed');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'atomic_writes.txt');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'atomic_writes.txt', root);
   const writer = await handle.createWriter();
   await writer.write(0, new Blob(['foox']));
 
@@ -200,8 +195,8 @@
   assert_equals(await getFileSize(handle), 4);
 }, 'atomic writes: writers make atomic changes on close');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'atomic_write_after_close.txt');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'atomic_write_after_close.txt', root);
   const writer = await handle.createWriter();
   await writer.write(0, new Blob(['foo']));
 
@@ -209,11 +204,13 @@
   assert_equals(await getFileContents(handle), 'foo');
   assert_equals(await getFileSize(handle), 3);
 
-  await promise_rejects(t, 'InvalidStateError', writer.write(0, new Blob(['abc'])));
+  await promise_rejects(
+      t, 'InvalidStateError', writer.write(0, new Blob(['abc'])));
 }, 'atomic writes: write() after close() fails');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'atomic_truncate_after_close.txt');
+directory_test(async (t, root) => {
+  const handle =
+      await createEmptyFile(t, 'atomic_truncate_after_close.txt', root);
   const writer = await handle.createWriter();
   await writer.write(0, new Blob(['foo']));
 
@@ -224,8 +221,8 @@
   await promise_rejects(t, 'InvalidStateError', writer.truncate(0));
 }, 'atomic writes: truncate() after close() fails');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'atomic_close_after_close.txt');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'atomic_close_after_close.txt', root);
   const writer = await handle.createWriter();
   await writer.write(0, new Blob(['foo']));
 
@@ -236,24 +233,23 @@
   await promise_rejects(t, 'InvalidStateError', writer.close());
 }, 'atomic writes: close() after close() fails');
 
-promise_test(async t => {
-  const handle = await createEmptyFile(t, 'there_can_be_only_one.txt');
+directory_test(async (t, root) => {
+  const handle = await createEmptyFile(t, 'there_can_be_only_one.txt', root);
   const writer = await handle.createWriter();
   await writer.write(0, new Blob(['foo']));
 
   // This test might be flaky if there is a race condition allowing
   // close() to be called multiple times.
-  let success_promises = [...Array(100)].map(() => writer
-                                             .close()
-                                             .then(() => 1)
-                                             .catch(() => 0));
+  let success_promises =
+      [...Array(100)].map(() => writer.close().then(() => 1).catch(() => 0));
   let close_attempts = await Promise.all(success_promises);
-  let success_count = close_attempts.reduce((x,y) => x + y);
+  let success_count = close_attempts.reduce((x, y) => x + y);
   assert_equals(success_count, 1);
 }, 'atomic writes: only one close() operation may succeed');
 
-promise_test(async t => {
-  const handle = await createFileWithContents(t, 'atomic_file_is_copied.txt', 'fooks');
+directory_test(async (t, root) => {
+  const handle = await createFileWithContents(
+      t, 'atomic_file_is_copied.txt', 'fooks', root);
   const writer = await handle.createWriter({keepExistingData: true});
 
   await writer.write(0, new Blob(['bar']));
@@ -262,8 +258,9 @@
   assert_equals(await getFileSize(handle), 5);
 }, 'createWriter({keepExistingData: true}): atomic writer initialized with source contents');
 
-promise_test(async t => {
-  const handle = await createFileWithContents(t, 'atomic_file_is_not_copied.txt', 'very long string');
+directory_test(async (t, root) => {
+  const handle = await createFileWithContents(
+      t, 'atomic_file_is_not_copied.txt', 'very long string', root);
   const writer = await handle.createWriter({keepExistingData: false});
 
   await writer.write(0, new Blob(['bar']));
@@ -273,8 +270,7 @@
   assert_equals(await getFileSize(handle), 3);
 }, 'createWriter({keepExistingData: false}): atomic writer initialized with empty file');
 
-promise_test(async t => {
-  const root = await FileSystemDirectoryHandle.getSystemDirectory({ type: 'sandbox' });
+directory_test(async (t, root) => {
   const dir = await createDirectory(t, 'parent_dir', root);
   const file_name = 'atomic_writer_persists_removed.txt';
   const handle = await createFileWithContents(t, file_name, 'foo', dir);
diff --git a/third_party/blink/web_tests/external/wpt/resources/testharness.js b/third_party/blink/web_tests/external/wpt/resources/testharness.js
index 9ef46ca..55de1ce2 100644
--- a/third_party/blink/web_tests/external/wpt/resources/testharness.js
+++ b/third_party/blink/web_tests/external/wpt/resources/testharness.js
@@ -1294,8 +1294,11 @@
     expose(assert_regexp_match, "assert_regexp_match");
 
     function assert_class_string(object, class_string, description) {
-        assert_equals({}.toString.call(object), "[object " + class_string + "]",
-                      description);
+        var actual = {}.toString.call(object);
+        var expected = "[object " + class_string + "]";
+        assert(same_value(actual, expected), "assert_class_string", description,
+                                             "expected ${expected} but got ${actual}",
+                                             {expected:expected, actual:actual});
     }
     expose(assert_class_string, "assert_class_string");
 
diff --git a/third_party/blink/web_tests/external/wpt/storage-access-api/hasStorageAccess.sub.window.js b/third_party/blink/web_tests/external/wpt/storage-access-api/hasStorageAccess.sub.window.js
index 1352d75..c4d6e3a 100644
--- a/third_party/blink/web_tests/external/wpt/storage-access-api/hasStorageAccess.sub.window.js
+++ b/third_party/blink/web_tests/external/wpt/storage-access-api/hasStorageAccess.sub.window.js
@@ -56,4 +56,13 @@
   // Validate the nested-iframe scenario where the cross-origin frame containing
   //  the tests is not the first child.
   RunTestsInNestedIFrame("http://{{domains[www]}}:{{ports[http][0]}}/storage-access-api/hasStorageAccess.sub.window.html?testCase=nested-cross-origin-frame&allowed=false&rootdocument=false");
+
+  // Run tests specific to the top-level window only here. They won't get re-run inside of various iframes.
+  promise_test(() => {
+    let createdDocument = document.implementation.createDocument("", null);
+
+    return createdDocument.hasStorageAccess().then(hasAccess => {
+      assert_false(hasAccess, "Access should be denied to a generated document not part of the DOM.");
+    });
+  }, "[" + testPrefix + "] document.hasStorageAccess() should work on a document object.");
 }
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..13d12f25
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance.html b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance.html
new file mode 100644
index 0000000..6bd1d47
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/date-picker-appearance.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<script>
+testRunner.setUseMockTheme(false);
+testRunner.waitUntilDone();
+</script>
+<script src="../../forms/resources/picker-common.js"></script>
+<input type=date id=date value="10000-12-31">
+<script>
+openPicker(document.getElementById('date'), () => testRunner.notifyDone());
+</script>
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..826fd1c
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance.html b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance.html
new file mode 100644
index 0000000..2b026f9
--- /dev/null
+++ b/third_party/blink/web_tests/fast/forms/controls-new-ui-high-contrast/month-picker-appearance.html
@@ -0,0 +1,10 @@
+<!DOCTYPE html>
+<script>
+testRunner.setUseMockTheme(false);
+testRunner.waitUntilDone();
+</script>
+<script src="../../forms/resources/picker-common.js"></script>
+<input type=month id=month value="2018-08">
+<script>
+openPicker(document.getElementById('month'), () => testRunner.notifyDone());
+</script>
diff --git a/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override-expected.txt b/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override-expected.txt
new file mode 100644
index 0000000..5286e283
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override-expected.txt
@@ -0,0 +1,6 @@
+Tests invalid timezone override handling.
+{
+    code : -32602
+    message : Invalid timezone id
+}
+
diff --git a/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override.js b/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override.js
new file mode 100644
index 0000000..dfeb2397
--- /dev/null
+++ b/third_party/blink/web_tests/inspector-protocol/emulation/set-invalid-timezone-override.js
@@ -0,0 +1,13 @@
+(async function(testRunner) {
+  const {page, session, dp} = await testRunner.startBlank(
+      'Tests invalid timezone override handling.');
+
+  async function setTimezoneOverride(timezoneId) {
+    const result = await dp.Emulation.setTimezoneOverride({ timezoneId });
+    return result.error;
+  }
+
+  testRunner.log(await setTimezoneOverride(`Foo/Bar`));
+
+  testRunner.completeTest();
+})
diff --git a/third_party/blink/web_tests/platform/linux/fast/clip/nestedTransparencyClip-expected.png b/third_party/blink/web_tests/platform/linux/fast/clip/nestedTransparencyClip-expected.png
index 09fa800..b56cf3c 100644
--- a/third_party/blink/web_tests/platform/linux/fast/clip/nestedTransparencyClip-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/clip/nestedTransparencyClip-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..0dbb98f3
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..ec3a6c5
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/multicol/composited-with-child-layer-in-next-column-expected.png b/third_party/blink/web_tests/platform/linux/fast/multicol/composited-with-child-layer-in-next-column-expected.png
index 9a1b0a4..d644c09 100644
--- a/third_party/blink/web_tests/platform/linux/fast/multicol/composited-with-child-layer-in-next-column-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/multicol/composited-with-child-layer-in-next-column-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/table/multiple-captions-display-expected.png b/third_party/blink/web_tests/platform/linux/fast/table/multiple-captions-display-expected.png
index 479ce0a..3e582f3 100644
--- a/third_party/blink/web_tests/platform/linux/fast/table/multiple-captions-display-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/table/multiple-captions-display-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/linux/fast/text/complex-text-opacity-expected.png
index efa6f2b..8279354a 100644
--- a/third_party/blink/web_tests/platform/linux/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/linux/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/batik/text/textFeatures-expected.png b/third_party/blink/web_tests/platform/linux/svg/batik/text/textFeatures-expected.png
index 62618fa..b93e233 100644
--- a/third_party/blink/web_tests/platform/linux/svg/batik/text/textFeatures-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/batik/text/textFeatures-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/batik/text/textProperties-expected.png b/third_party/blink/web_tests/platform/linux/svg/batik/text/textProperties-expected.png
index 15c6f51c..8ac03797 100644
--- a/third_party/blink/web_tests/platform/linux/svg/batik/text/textProperties-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/batik/text/textProperties-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png
index 62122f0..1c343cf 100644
--- a/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/linux/svg/custom/text-image-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/transforms/transform-on-inline-expected.png b/third_party/blink/web_tests/platform/linux/transforms/transform-on-inline-expected.png
index e30d5cf7..124b3a1 100644
--- a/third_party/blink/web_tests/platform/linux/transforms/transform-on-inline-expected.png
+++ b/third_party/blink/web_tests/platform/linux/transforms/transform-on-inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/transforms/transform-table-row-expected.png b/third_party/blink/web_tests/platform/linux/transforms/transform-table-row-expected.png
index bd19879c..4941704c 100644
--- a/third_party/blink/web_tests/platform/linux/transforms/transform-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/linux/transforms/transform-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..d4cdcd1
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..392ad63c
--- /dev/null
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index d01817bc..03aeefab 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 6f84410..5d2adc9 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index 27c053f..ea9556d 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index 7608bde..313c392 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index 35ef34b3..d1dae21 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index d33184d2..b842713 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index 090c4b00..63484f4 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index f024790..2af43257 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index f4560ed..2f333ae 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 242805a..8a19fb5d 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index d3ff6bb..161aade 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index 95d34490..3ae237f6 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index 7f9b190..20bfb34 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index 94dec6564..b36d273 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index 2fa7d98..58ba16c8 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index d40fb99f..983d8c0 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index f0b04f4..92b1b3e 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index 990c2bf..bec986b8 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index c57e4ca..bbb69f78b 100644
--- a/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/linux/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..ae4e839
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..3df9c76c
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/fast/text/complex-text-opacity-expected.png
index 80235b7..69403d38 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..6a78100
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..2d7ad5a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 6dd9f49..1b212ee 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 0020649..4b3dc92 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index ae9b705a..0ea0e240 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index 3e95e992..0dbcc0c 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index afda2ce..62cc82e 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index 10262594..284c522 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index 61403cb..e4af077 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index a151e04..d619146 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index 819a2b92..a7b44eb 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 3f2401f..e0c837f 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index b53e931..630d734 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index 731d581..0f74cb6 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index 54547dd..af0be9c 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index 04fca98..bac3876 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index d0e126d2..304b09c 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index a455405..3832fc4 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index e36c9c3..c57e4de 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index 7d151aae..47491a68 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index 0f48f12a6..de661e9a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.10/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..62b88735
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..8c57f42
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..3152c42
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..96c75a18
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 8d08357..2f7ef5a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 16c03cb1..d029fe2 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index c7aa0d9..a5bcec2 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index 7188f6d..b950a228 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index 51bde1d..9334a7d3 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index 7599ab66..690d5eb 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index 9a80afe..719f3eb3 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index a988280..7cd2d2f 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index f4f93dd7..a807f46 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 5b1a7df6..cf210d6 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index ff4d28e5..bf8eb99 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index 962f8d4..20864f0a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index dba0ef4..a08ccff 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index bb78cd9..540e7cde 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index e261b9c..0061854 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index 8e104a5..f9c76f4 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 8d7fae3..b43f5ff 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index f1f7c4f..4b430c1 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index 2306902..9b215f1 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.11/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..0a4928e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..ae003e7
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/fast/text/complex-text-opacity-expected.png
index a8ab7c7..e3f3451 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..3152c42
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..96c75a18
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 8d08357..2f7ef5a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 16c03cb1..d029fe2 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index c7aa0d9..a5bcec2 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index 7188f6d..b950a228 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index 51bde1d..9334a7d3 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index 7599ab66..690d5eb 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index 9a80afe..719f3eb3 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index a988280..7cd2d2f 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index f4f93dd7..a807f46 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 5b1a7df6..cf210d6 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index ff4d28e5..bf8eb99 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index 962f8d4..20864f0a 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index dba0ef4..a08ccff 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index bb78cd9..540e7cde 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index e261b9c..0061854 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index 8e104a5..f9c76f4 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 8d7fae3..b43f5ff 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index f1f7c4f..4b430c1 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index 2306902..9b215f1 100644
--- a/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-mac10.12/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..1ff8e39
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..ff2a2f50
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 0ff1b2d..0273f4b 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index bcc3bfb..017b8cb 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index 0482d27..ab0beee2 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index c3409e6..ac32e202 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index 95f23bd..7fe5088c 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index 4fab3ea..d35e1f7b 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index c37fbe4..c0a957a 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index 9aafe6a..02dc4a0ac 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index f4f93dd7..a807f46 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 5b1a7df6..cf210d6 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index 9485407..cf86000 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index bc66cf3..c606234d 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index e4c237c..0344e7f6 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index f2ccf7b..386c560dd 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index 868549a0..80232563 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index 6271e8a..63d294d 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 16f02ece..13a307b 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index f1f7c4f..4b430c1 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index 2306902..9b215f1 100644
--- a/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac-retina/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..43671ad
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..5540c41a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/table/multiple-captions-display-expected.png b/third_party/blink/web_tests/platform/mac/fast/table/multiple-captions-display-expected.png
index e01a6fe..37c2a0c 100644
--- a/third_party/blink/web_tests/platform/mac/fast/table/multiple-captions-display-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/table/multiple-captions-display-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/mac/fast/text/complex-text-opacity-expected.png
index 4e9e2cf..3e439f9 100644
--- a/third_party/blink/web_tests/platform/mac/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/mac/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/batik/text/textFeatures-expected.png b/third_party/blink/web_tests/platform/mac/svg/batik/text/textFeatures-expected.png
index d61843d0..5060e224 100644
--- a/third_party/blink/web_tests/platform/mac/svg/batik/text/textFeatures-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/batik/text/textFeatures-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/batik/text/textProperties-expected.png b/third_party/blink/web_tests/platform/mac/svg/batik/text/textProperties-expected.png
index 7f982c5..d883cd4 100644
--- a/third_party/blink/web_tests/platform/mac/svg/batik/text/textProperties-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/batik/text/textProperties-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png
index 0aa59a7..0587824 100644
--- a/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/mac/svg/custom/text-image-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/transforms/transform-on-inline-expected.png b/third_party/blink/web_tests/platform/mac/transforms/transform-on-inline-expected.png
index 52e37ed..bd5999b 100644
--- a/third_party/blink/web_tests/platform/mac/transforms/transform-on-inline-expected.png
+++ b/third_party/blink/web_tests/platform/mac/transforms/transform-on-inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/transforms/transform-table-row-expected.png b/third_party/blink/web_tests/platform/mac/transforms/transform-table-row-expected.png
index 36d5bf8..61d19bf 100644
--- a/third_party/blink/web_tests/platform/mac/transforms/transform-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/mac/transforms/transform-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..1ff8e39
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..ff2a2f50
--- /dev/null
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 0ff1b2d..0273f4b 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index bcc3bfb..017b8cb 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index 0482d27..ab0beee2 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index c3409e6..ac32e202 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index 95f23bd..7fe5088c 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index 4fab3ea..d35e1f7b 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index c37fbe4..c0a957a 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index 9aafe6a..02dc4a0ac 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
index f4f93dd7..a807f46 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
index 5b1a7df6..cf210d6 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index 9485407..cf86000 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index bc66cf3..c606234d 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index e4c237c..0344e7f6 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index f2ccf7b..386c560dd 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index 868549a0..80232563 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index 6271e8a..63d294d 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 16f02ece..13a307b 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index f1f7c4f..4b430c1 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
index 2306902..9b215f1 100644
--- a/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/mac/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/table/multiple-captions-display-expected.png b/third_party/blink/web_tests/platform/win/fast/table/multiple-captions-display-expected.png
index 0738211..be821c7 100644
--- a/third_party/blink/web_tests/platform/win/fast/table/multiple-captions-display-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/table/multiple-captions-display-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/win/fast/text/complex-text-opacity-expected.png
index 85c3517f..2d2eb02 100644
--- a/third_party/blink/web_tests/platform/win/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/win/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/batik/text/textFeatures-expected.png b/third_party/blink/web_tests/platform/win/svg/batik/text/textFeatures-expected.png
index 55cd74e..dead54f 100644
--- a/third_party/blink/web_tests/platform/win/svg/batik/text/textFeatures-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/batik/text/textFeatures-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/batik/text/textProperties-expected.png b/third_party/blink/web_tests/platform/win/svg/batik/text/textProperties-expected.png
index b2b21705..21e674221 100644
--- a/third_party/blink/web_tests/platform/win/svg/batik/text/textProperties-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/batik/text/textProperties-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png b/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png
index 83ad0b32..b139a65 100644
--- a/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/win/svg/custom/text-image-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/transform-on-inline-expected.png b/third_party/blink/web_tests/platform/win/transforms/transform-on-inline-expected.png
index 0a395209..363f65ba 100644
--- a/third_party/blink/web_tests/platform/win/transforms/transform-on-inline-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/transform-on-inline-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/transforms/transform-table-row-expected.png b/third_party/blink/web_tests/platform/win/transforms/transform-table-row-expected.png
index 3fed593..0400927 100644
--- a/third_party/blink/web_tests/platform/win/transforms/transform-table-row-expected.png
+++ b/third_party/blink/web_tests/platform/win/transforms/transform-table-row-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 3e2e4cf..c8199bd6 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 2003352..ef8982f 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index 00be3e8..2b6be61 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index 9cd10ad9..ba6ec27 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index e5f8e83..672fc0e 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index dd25610..2574973 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index 7a1ee86a..dadbdfe9 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index 0480494..ff15eea 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
new file mode 100644
index 0000000..e492bf5e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
new file mode 100644
index 0000000..13d9e1e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index d1cd771..633d291 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index e3b8dfc..f8c692a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index deebc69..03a1dc3 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index 78c06a1..a8cd7fd 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index 753575f..5b5509a 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 271ead3..f7d8d952 100644
--- a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
new file mode 100644
index 0000000..b239d18
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
new file mode 100644
index 0000000..4439411
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..10f3716
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..e4bb592
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/fast/text/complex-text-opacity-expected.png b/third_party/blink/web_tests/platform/win7/fast/text/complex-text-opacity-expected.png
index 4f580017..71baf4e9 100644
--- a/third_party/blink/web_tests/platform/win7/fast/text/complex-text-opacity-expected.png
+++ b/third_party/blink/web_tests/platform/win7/fast/text/complex-text-opacity-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..2cf7122
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..5fc580a
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
index 11d1d3d..c879458 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-coarse-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
index 2fd53ea..5dd8bf0a 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-disabled-previous-month-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
index fbf3c15..d419e94 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
index a262359..9ddfdc8 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
index e4b801d..c71c1bf 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-step-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
index cd04a0b..456ce9c 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
index b54703b..f1b55ca 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
index 66e8af423..e3d1939 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/calendar-picker/date-picker-month-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
new file mode 100644
index 0000000..e492bf5e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/date/date-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
new file mode 100644
index 0000000..13d9e1e
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/datetimelocal/datetimelocal-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
index a2a67ff3..1f6b04a 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-today-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
index 5315c9e..e441383 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-disabled-values-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
index 0926d4fb6..2429179 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index 0db07ab..5f751d7c 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
index 2d09ce5..69640e0 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-rtl-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
index e3d3f0b4..1c7e117 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-value-not-in-interval-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
index 6085ee5..bfa676e 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-zoom150-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
index ec0db28..d622ee9 100644
--- a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/month/month-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
new file mode 100644
index 0000000..4439411
--- /dev/null
+++ b/third_party/blink/web_tests/platform/win7/virtual/controls-refresh/fast/forms/controls-new-ui/week/week-appearance-basic-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html b/third_party/blink/web_tests/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
index 35e6c3cc..1818b76 100644
--- a/third_party/blink/web_tests/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
+++ b/third_party/blink/web_tests/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe.html
@@ -35,14 +35,9 @@
     runAfterLayoutAndPaint(function(){
       nonFastScrollableRects = internals.nonFastScrollableRects(document);
       shouldBe('nonFastScrollableRects.length', '1');
-      // PaintNonFastScrollableRegions stores the non-fast region in the space
-      // of the scaled layer but prints it in absolute coordinates so the rect
-      // is scaled here.
-      if (internals.runtimeFlags.paintNonFastScrollableRegionsEnabled) {
-        shouldBeEqualToString('rectToString(nonFastScrollableRects[0])', '[220, 220, 240, 240]');
-      } else {
-        shouldBeEqualToString('rectToString(nonFastScrollableRects[0])', '[110, 110, 120, 120]');
-      }
+      // The non-fast region in the space of the scaled layer but prints it in
+      // absolute coordinates so the rect is scaled here.
+      shouldBeEqualToString('rectToString(nonFastScrollableRects[0])', '[220, 220, 240, 240]');
 
       drawNonFastScrollableRegionOverlays();
 
diff --git a/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
new file mode 100644
index 0000000..20d3718
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/date-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
new file mode 100644
index 0000000..c843076
--- /dev/null
+++ b/third_party/blink/web_tests/virtual/controls-refresh-high-contrast/fast/forms/controls-new-ui-high-contrast/month-picker-appearance-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
index a1141ca..37a04119 100644
--- a/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
+++ b/third_party/blink/web_tests/virtual/controls-refresh/fast/forms/controls-new-ui/month-picker/month-picker-appearance-highlight-expected.png
Binary files differ
diff --git a/third_party/blink/web_tests/virtual/native-file-system/external/wpt/native-file-system/README.txt b/third_party/blink/web_tests/virtual/native-file-system/external/wpt/native-file-system/README.txt
deleted file mode 100644
index 27be796..0000000
--- a/third_party/blink/web_tests/virtual/native-file-system/external/wpt/native-file-system/README.txt
+++ /dev/null
@@ -1,2 +0,0 @@
-# This suite runs the tests with
-# --enable-features=NativeFilesystemAPI
diff --git a/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/README.txt b/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/README.txt
deleted file mode 100644
index 172c9a3..0000000
--- a/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/README.txt
+++ /dev/null
@@ -1 +0,0 @@
-This suite runs tests with --enable-blink-features=PaintNonFastScrollableRegions
diff --git a/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt b/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt
deleted file mode 100644
index 3b22aa9..0000000
--- a/third_party/blink/web_tests/virtual/paint-non-fast-scrollable-regions/scrollingcoordinator/non-fast-scrollable-region-scaled-iframe-expected.txt
+++ /dev/null
@@ -1,10 +0,0 @@
-This test ensures non-fast scrollable areas are calculated correctly when page is scaled.
-
-On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
-
-PASS nonFastScrollableRects.length is 1
-PASS rectToString(nonFastScrollableRects[0]) is "[220, 220, 240, 240]"
-PASS successfullyParsed is true
-
-TEST COMPLETE
-
diff --git a/third_party/closure_compiler/externs/file_manager_private.js b/third_party/closure_compiler/externs/file_manager_private.js
index 6a60af6..1b75c2e 100644
--- a/third_party/closure_compiler/externs/file_manager_private.js
+++ b/third_party/closure_compiler/externs/file_manager_private.js
@@ -234,8 +234,6 @@
 chrome.fileManagerPrivate.CrostiniEventType = {
   ENABLE: 'enable',
   DISABLE: 'disable',
-  ROOT_ACCESS_ALLOW: 'root_access_allow',
-  ROOT_ACCESS_DISALLOW: 'root_access_disallow',
   SHARE: 'share',
   UNSHARE: 'unshare',
 };
diff --git a/third_party/closure_compiler/externs/users_private.js b/third_party/closure_compiler/externs/users_private.js
index 93a918c7..5f33819 100644
--- a/third_party/closure_compiler/externs/users_private.js
+++ b/third_party/closure_compiler/externs/users_private.js
@@ -43,6 +43,13 @@
 chrome.usersPrivate.getWhitelistedUsers = function(callback) {};
 
 /**
+ * Checks to see if the user is already present as a whitelisted user.
+ * @param {string} email
+ * @param {function(boolean):void} callback
+ */
+chrome.usersPrivate.isWhitelistedUser = function(email, callback) {};
+
+/**
  * Adds a new user with the given email to the whitelist. The callback is called
  * with true if the user was added succesfully, or with false if not (e.g.
  * because the user was already present, or the current user isn't the owner).
diff --git a/tools/metrics/histograms/enums.xml b/tools/metrics/histograms/enums.xml
index 4b404954..7df4212 100644
--- a/tools/metrics/histograms/enums.xml
+++ b/tools/metrics/histograms/enums.xml
@@ -20671,6 +20671,7 @@
   <int value="1382" label="AUTOTESTPRIVATE_SETOVERVIEWMODESTATE"/>
   <int value="1383" label="AUTOTESTPRIVATE_TAKESCREENSHOTFORDISPLAY"/>
   <int value="1384" label="AUTOFILLPRIVATE_SETCREDITCARDFIDOAUTHENABLEDSTATE"/>
+  <int value="1385" label="USERSPRIVATE_ISWHITELISTEDUSER"/>
 </enum>
 
 <enum name="ExtensionIconState">
@@ -37465,6 +37466,8 @@
   <int value="1435251818" label="AutofillNoLocalSaveOnUploadSuccess:enabled"/>
   <int value="1437413720" label="CooperativeScheduling:disabled"/>
   <int value="1441897340" label="AndroidSpellCheckerNonLowEnd:enabled"/>
+  <int value="1442129147"
+      label="OmniboxRemoveSuggestionsFromClipboard:disabled"/>
   <int value="1442798825" label="enable-quic"/>
   <int value="1442830837" label="MemoryAblation:disabled"/>
   <int value="1447295459" label="SyncPseudoUSSApps:enabled"/>
@@ -37935,6 +37938,8 @@
   <int value="2063091429" label="OfflinePagesSharing:enabled"/>
   <int value="2067634730" label="LsdPermissionPrompt:disabled"/>
   <int value="2067735898" label="WebVrAutopresentFromIntent:enabled"/>
+  <int value="2067903732"
+      label="OmniboxRemoveSuggestionsFromClipboard:enabled"/>
   <int value="2068193488" label="SharedClipboardUI:disabled"/>
   <int value="2069999572"
       label="AllowSignedHTTPExchangeCertsWithoutExtension:disabled"/>
diff --git a/tools/metrics/histograms/histograms.xml b/tools/metrics/histograms/histograms.xml
index 222d331..f93788f 100644
--- a/tools/metrics/histograms/histograms.xml
+++ b/tools/metrics/histograms/histograms.xml
@@ -77065,6 +77065,9 @@
 </histogram>
 
 <histogram name="Net.HttpRequestCompletionErrorCodes" enum="NetErrorCodes">
+  <obsolete>
+    Removed in M79.
+  </obsolete>
   <owner>sclittle@chromium.org</owner>
   <owner>bengr@chromium.org</owner>
   <summary>
@@ -77075,6 +77078,9 @@
 
 <histogram name="Net.HttpRequestCompletionErrorCodes.MainFrame"
     enum="NetErrorCodes" expires_after="M77">
+  <obsolete>
+    Removed in M79.
+  </obsolete>
   <owner>sclittle@chromium.org</owner>
   <owner>bengr@chromium.org</owner>
   <summary>
@@ -176461,6 +176467,7 @@
   <affected-histogram name="Graphics.Smoothness.FrameSequenceLength"/>
   <affected-histogram name="Graphics.Smoothness.Throughput.CompositorThread"/>
   <affected-histogram name="Graphics.Smoothness.Throughput.MainThread"/>
+  <affected-histogram name="Graphics.Smoothness.Throughput.SlowerThread"/>
   <affected-histogram name="SingleThreadedCompositorLatency"/>
   <affected-histogram name="SingleThreadedCompositorLatency.MissedFrame"/>
   <affected-histogram
@@ -176475,6 +176482,8 @@
   <suffix name="CompositorThread"
       label="The throughput of the compositor thread"/>
   <suffix name="MainThread" label="The throughput of the main thread"/>
+  <suffix name="SlowerThread"
+      label="The worse throughput of the main and the compositor thread"/>
   <affected-histogram name="Graphics.Smoothness.Throughput"/>
 </histogram_suffixes>
 
diff --git a/tools/traffic_annotation/summary/annotations.xml b/tools/traffic_annotation/summary/annotations.xml
index 5cc6255f..4442ba0 100644
--- a/tools/traffic_annotation/summary/annotations.xml
+++ b/tools/traffic_annotation/summary/annotations.xml
@@ -133,7 +133,7 @@
  <item id="history_notice_utils_popup" hash_code="80832574" type="1" second_id="110307337" content_hash_code="30618510" os_list="linux,windows" semantics_fields="2,3,4" policy_fields="4" file_path="components/browsing_data/core/history_notice_utils.cc"/>
  <item id="history_ui_favicon_request_handler_get_favicon" hash_code="17562717" type="0" content_hash_code="64054629" os_list="linux,windows" file_path="components/favicon/core/history_ui_favicon_request_handler_impl.cc"/>
  <item id="http_server_error_response" hash_code="32197336" type="0" content_hash_code="61082230" os_list="linux,windows" file_path="net/server/http_server.cc"/>
- <item id="https_server_previews_navigation" hash_code="35725390" type="0" content_hash_code="84423109" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_serving_url_loader.cc"/>
+ <item id="https_server_previews_navigation" hash_code="35725390" type="0" content_hash_code="84423109" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_redirect_serving_url_loader.cc"/>
  <item id="icon_cacher" hash_code="103133150" type="0" content_hash_code="116368348" os_list="linux,windows" file_path="components/ntp_tiles/icon_cacher_impl.cc"/>
  <item id="icon_catcher_get_large_icon" hash_code="44494884" type="0" content_hash_code="98262037" os_list="linux,windows" file_path="components/ntp_tiles/icon_cacher_impl.cc"/>
  <item id="image_annotation" hash_code="107881858" type="0" content_hash_code="96203979" os_list="linux,windows" file_path="services/image_annotation/annotator.cc"/>
@@ -201,7 +201,7 @@
  <item id="prefetch_download" hash_code="44583172" type="0" content_hash_code="21424542" os_list="linux,windows" file_path="components/offline_pages/core/prefetch/prefetch_downloader_impl.cc"/>
  <item id="prefetch_visuals" hash_code="91068704" type="0" content_hash_code="90439946" os_list="linux,windows" file_path="components/offline_pages/core/prefetch/visuals_fetch_by_url.cc"/>
  <item id="previews_litepage_origin_prober" hash_code="33703614" type="0" content_hash_code="116235355" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_redirect_url_loader.cc"/>
- <item id="previews_litepage_prober" hash_code="33813109" type="0" content_hash_code="52572789" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_decider.cc"/>
+ <item id="previews_litepage_prober" hash_code="33813109" type="0" content_hash_code="52572789" os_list="linux,windows" file_path="chrome/browser/previews/previews_lite_page_redirect_decider.cc"/>
  <item id="previews_prober" hash_code="41010697" type="0" deprecated="2019-07-24" content_hash_code="51581107" file_path=""/>
  <item id="printer_job_handler" hash_code="67638271" type="1" second_id="111712433" content_hash_code="75712693" os_list="linux,windows" semantics_fields="2,3,4" file_path="chrome/service/cloud_print/printer_job_handler.cc"/>
  <item id="privet_http_impl" hash_code="71251498" type="0" content_hash_code="107348604" os_list="linux,windows" file_path="chrome/browser/printing/cloud_print/privet_http_impl.cc"/>
diff --git a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
index 02618d42..da37ff93 100644
--- a/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
+++ b/ui/android/java/src/org/chromium/ui/base/WindowAndroid.java
@@ -33,6 +33,7 @@
 import org.chromium.base.ContextUtils;
 import org.chromium.base.Log;
 import org.chromium.base.ObserverList;
+import org.chromium.base.PackageManagerUtils;
 import org.chromium.base.StrictModeContext;
 import org.chromium.base.VisibleForTesting;
 import org.chromium.base.annotations.CalledByNative;
@@ -676,11 +677,7 @@
      *         Context.startActivity will not throw ActivityNotFoundException.
      */
     public boolean canResolveActivity(Intent intent) {
-        return ContextUtils.getApplicationContext()
-                       .getPackageManager()
-                       .queryIntentActivities(intent, 0)
-                       .size()
-                > 0;
+        return !PackageManagerUtils.queryIntentActivities(intent, 0).isEmpty();
     }
 
     /**
diff --git a/ui/aura/BUILD.gn b/ui/aura/BUILD.gn
index 355a279..ca0179c 100644
--- a/ui/aura/BUILD.gn
+++ b/ui/aura/BUILD.gn
@@ -36,6 +36,7 @@
     "input_state_lookup_win.h",
     "layout_manager.h",
     "null_window_targeter.h",
+    "scoped_enable_unadjusted_mouse_events.h",
     "scoped_keyboard_hook.h",
     "scoped_simple_keyboard_hook.h",
     "scoped_window_targeter.h",
diff --git a/ui/aura/scoped_enable_unadjusted_mouse_events.h b/ui/aura/scoped_enable_unadjusted_mouse_events.h
new file mode 100644
index 0000000..e4022ea
--- /dev/null
+++ b/ui/aura/scoped_enable_unadjusted_mouse_events.h
@@ -0,0 +1,26 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_AURA_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_H_
+#define UI_AURA_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_H_
+
+#include "ui/aura/aura_export.h"
+
+namespace aura {
+
+// Scoping class that ensures correctly exit unadjusted mouse input. Start using
+// unadjusted mouse events (i.e. WM_INPUT on Windows) when this is constructed.
+// Destroying an instance of this class will exit the unadjusted mouse event
+// mode.
+class AURA_EXPORT ScopedEnableUnadjustedMouseEvents {
+ public:
+  virtual ~ScopedEnableUnadjustedMouseEvents() = default;
+
+ protected:
+  ScopedEnableUnadjustedMouseEvents() = default;
+};
+
+}  // namespace aura
+
+#endif  // UI_AURA_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_H_
diff --git a/ui/aura/window_tree_host.cc b/ui/aura/window_tree_host.cc
index e37f09c..e68fae8 100644
--- a/ui/aura/window_tree_host.cc
+++ b/ui/aura/window_tree_host.cc
@@ -344,6 +344,12 @@
   }
 }
 
+std::unique_ptr<ScopedEnableUnadjustedMouseEvents>
+WindowTreeHost::RequestUnadjustedMovement() {
+  NOTIMPLEMENTED();
+  return nullptr;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // WindowTreeHost, protected:
 
diff --git a/ui/aura/window_tree_host.h b/ui/aura/window_tree_host.h
index cbc990d..850424d3 100644
--- a/ui/aura/window_tree_host.h
+++ b/ui/aura/window_tree_host.h
@@ -19,6 +19,7 @@
 #include "base/time/time.h"
 #include "components/viz/common/surfaces/frame_sink_id.h"
 #include "ui/aura/aura_export.h"
+#include "ui/aura/scoped_enable_unadjusted_mouse_events.h"
 #include "ui/aura/window.h"
 #include "ui/base/cursor/cursor.h"
 #include "ui/base/ime/input_method_delegate.h"
@@ -241,6 +242,13 @@
     return occlusion_state_;
   }
 
+  // Requests using unadjusted movement mouse events, i.e. WM_INPUT on Windows.
+  // Returns a ScopedEnableUnadjustedMouseEvents instance which stops using
+  // unadjusted mouse events when destroyed, returns nullptr if unadjusted mouse
+  // event is not not implemented or failed.
+  virtual std::unique_ptr<ScopedEnableUnadjustedMouseEvents>
+  RequestUnadjustedMovement();
+
   bool holding_pointer_moves() const { return holding_pointer_moves_; }
 
  protected:
diff --git a/ui/base/win/window_event_target.h b/ui/base/win/window_event_target.h
index b31cae0..52cfa8d 100644
--- a/ui/base/win/window_event_target.h
+++ b/ui/base/win/window_event_target.h
@@ -65,6 +65,17 @@
                                      LPARAM l_param,
                                      bool* handled) = 0;
 
+  // Handles WM_INPUT events.
+  // The |message| parameter identifies the message.
+  // The |w_param| and |l_param| values are as per MSDN docs.
+  // The |handled| parameter is an output parameter which when set to false
+  // indicates that the message should be DefProc'ed.
+  // Returns the result of processing the message.
+  virtual LRESULT HandleInputMessage(unsigned int message,
+                                     WPARAM w_param,
+                                     LPARAM l_param,
+                                     bool* handled) = 0;
+
   // Handles scroll messages like WM_VSCROLL and WM_HSCROLL.
   // The |message| parameter identifies the scroll message.
   // The |w_param| and |l_param| values are dependent on the type of scroll.
diff --git a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
index 7ebde71..a8b8b3b 100644
--- a/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
+++ b/ui/chromeos/translations/ui_chromeos_strings_ml.xtb
@@ -527,7 +527,7 @@
 <translation id="7040138676081995583">ഇത് ഉപയോഗിച്ച് തുറക്കുക...</translation>
 <translation id="7100897339030255923"><ph name="COUNT" /> ഇനങ്ങൾ തിരഞ്ഞെടുത്തു</translation>
 <translation id="7106346894903675391">കൂടുതൽ സംഭരണം വാങ്ങുക...</translation>
-<translation id="7126604456862387217">'&lt;b&gt;<ph name="SEARCH_STRING" />&lt;/b&gt;' - &lt;em&gt;തിരയൽ ഡ്രൈവ്&lt;/em&gt;</translation>
+<translation id="7126604456862387217">'&lt;b&gt;<ph name="SEARCH_STRING" />&lt;/b&gt;' - &lt;em&gt;ഡ്രൈവിൽ തിരയൂ&lt;/em&gt;</translation>
 <translation id="714034171374937760">Chromebase</translation>
 <translation id="7170467426996704624">ലിപ്യന്തരണം (salam → ሰላም)</translation>
 <translation id="7172053773111046550">എസ്റ്റോണിയന്‍ കീബോര്‍ഡ്</translation>
diff --git a/ui/events/blink/web_input_event.cc b/ui/events/blink/web_input_event.cc
index 1ec1569..796f6577 100644
--- a/ui/events/blink/web_input_event.cc
+++ b/ui/events/blink/web_input_event.cc
@@ -257,6 +257,11 @@
   // Replace the event's coordinate fields with translated position data from
   // |event|.
   webkit_event.SetPositionInWidget(event.x(), event.y());
+  if (event.flags() & ui::EF_UNADJUSTED_MOUSE) {
+    webkit_event.movement_x = event.movement().x();
+    webkit_event.movement_y = event.movement().y();
+    webkit_event.is_raw_movement_event = true;
+  }
 
 #if defined(OS_WIN)
   if (event.native_event().message && event.type() != ET_MOUSE_EXITED)
diff --git a/ui/events/blink/web_input_event_unittest.cc b/ui/events/blink/web_input_event_unittest.cc
index d881ab0..6ee8c26 100644
--- a/ui/events/blink/web_input_event_unittest.cc
+++ b/ui/events/blink/web_input_event_unittest.cc
@@ -550,4 +550,18 @@
 }
 #endif
 
+TEST(WebInputEventTest, MouseMoveUnadjustedMovement) {
+  gfx::PointF cursor_pos(123, 456);
+  gfx::Vector2dF movement(-12, 34);
+  ui::MouseEvent event(ET_MOUSE_MOVED, cursor_pos, cursor_pos,
+                       base::TimeTicks(), 0, 0);
+  MouseEvent::DispatcherApi(&event).set_movement(movement);
+
+  blink::WebMouseEvent web_event = MakeWebMouseEvent(event);
+
+  ASSERT_TRUE(web_event.is_raw_movement_event);
+  ASSERT_EQ(web_event.movement_x, movement.x());
+  ASSERT_EQ(web_event.movement_y, movement.y());
+}
+
 }  // namespace ui
diff --git a/ui/events/event.h b/ui/events/event.h
index 0e260406..4ee8135 100644
--- a/ui/events/event.h
+++ b/ui/events/event.h
@@ -18,6 +18,7 @@
 #include "base/macros.h"
 #include "base/strings/string16.h"
 #include "base/time/time.h"
+#include "build/build_config.h"
 #include "ui/events/event_constants.h"
 #include "ui/events/gesture_event_details.h"
 #include "ui/events/gestures/gesture_types.h"
@@ -485,6 +486,22 @@
   MouseEvent(const MouseEvent& copy);
   ~MouseEvent() override;
 
+  class DispatcherApi {
+   public:
+    explicit DispatcherApi(MouseEvent* event) : event_(event) {}
+
+    // TODO(eirage): convert this to builder pattern.
+    void set_movement(const gfx::Vector2dF& movement) {
+      event_->movement_ = movement;
+      event_->set_flags(event_->flags() | EF_UNADJUSTED_MOUSE);
+    }
+
+   private:
+    MouseEvent* event_;
+
+    DISALLOW_COPY_AND_ASSIGN(DispatcherApi);
+  };
+
   // Conveniences to quickly test what button is down
   bool IsOnlyLeftMouseButton() const {
     return button_flags() == EF_LEFT_MOUSE_BUTTON;
@@ -543,6 +560,8 @@
   // Updates the button that changed.
   void set_changed_button_flags(int flags) { changed_button_flags_ = flags; }
 
+  const gfx::Vector2dF& movement() const { return movement_; }
+
   const PointerDetails& pointer_details() const { return pointer_details_; }
 
  private:
@@ -559,6 +578,12 @@
   // See description above getter for details.
   int changed_button_flags_;
 
+  // Raw mouse movement value reported from mouse hardware. The value of this is
+  // platform dependent and may change depending upon the hardware connected to
+  // the device. This field is only set if the flag EF_UNADJUSTED_MOUSE is
+  // present.
+  gfx::Vector2dF movement_;
+
   // The most recent user-generated MouseEvent, used to detect double clicks.
   static MouseEvent* last_click_event_;
 
diff --git a/ui/events/event_constants.h b/ui/events/event_constants.h
index 09eab5f..5eb5c2e 100644
--- a/ui/events/event_constants.h
+++ b/ui/events/event_constants.h
@@ -149,6 +149,9 @@
   EF_SCROLL_BY_PAGE = 1 << 22,       // Indicates this mouse event is generated
                                      // when users is requesting to scroll by
                                      // pages.
+  EF_UNADJUSTED_MOUSE = 1 << 23,     // Indicates this mouse event is unadjusted
+                                  // mouse events that has unadjusted movement
+                                  // delta, i.e. is from WM_INPUT on Windows.
 };
 
 // Result of dispatching an event.
diff --git a/ui/file_manager/externs/background/crostini.js b/ui/file_manager/externs/background/crostini.js
index ad82d9f8..a83e040 100644
--- a/ui/file_manager/externs/background/crostini.js
+++ b/ui/file_manager/externs/background/crostini.js
@@ -40,20 +40,6 @@
   isEnabled(vmName) {}
 
   /**
-   * Set whether the specified VM allows root access.
-   * @param {string} vmName
-   * @param {boolean} allowed
-   */
-  setRootAccessAllowed(vmName, allowed) {}
-
-  /**
-   * Returns true if root access to specified VM is allowed.
-   * @param {string} vmName
-   * @return {boolean}
-   */
-  isRootAccessAllowed(vmName) {}
-
-  /**
    * Registers an entry as a shared path for the specified VM.
    * @param {string} vmName
    * @param {!Entry} entry
diff --git a/ui/file_manager/file_manager/background/js/crostini.js b/ui/file_manager/file_manager/background/js/crostini.js
index 039f17e..5542679 100644
--- a/ui/file_manager/file_manager/background/js/crostini.js
+++ b/ui/file_manager/file_manager/background/js/crostini.js
@@ -22,12 +22,6 @@
      */
     this.shared_paths_ = {};
 
-    /**
-     * True if root access to specified VM is allowed.
-     * @private {Object<boolean>}
-     */
-    this.rootAccessAllowed_ = {};
-
     /** @private {?VolumeManager} */
     this.volumeManager_ = null;
   }
@@ -41,8 +35,6 @@
         loadTimeData.getBoolean('CROSTINI_ENABLED');
     this.enabled_[CrostiniImpl.PLUGIN_VM] =
         loadTimeData.getBoolean('PLUGIN_VM_ENABLED');
-    this.rootAccessAllowed_[CrostiniImpl.DEFAULT_VM] =
-        loadTimeData.getBoolean('CROSTINI_ROOT_ACCESS_ALLOWED');
   }
 
   /**
@@ -80,24 +72,6 @@
   }
 
   /**
-   * Set whether the specified VM allows root access.
-   * @param {string} vmName
-   * @param {boolean} allowed
-   */
-  setRootAccessAllowed(vmName, allowed) {
-    this.rootAccessAllowed_[vmName] = allowed;
-  }
-
-  /**
-   * Returns true if root access to specified VM is allowed.
-   * @param {string} vmName
-   * @return {boolean}
-   */
-  isRootAccessAllowed(vmName) {
-    return this.rootAccessAllowed_[vmName];
-  }
-
-  /**
    * @param {!Entry} entry
    * @return {?VolumeManagerCommon.RootType}
    * @private
@@ -180,12 +154,6 @@
       case chrome.fileManagerPrivate.CrostiniEventType.DISABLE:
         this.setEnabled(event.vmName, false);
         break;
-      case chrome.fileManagerPrivate.CrostiniEventType.ROOT_ACCESS_ALLOW:
-        this.setRootAccessAllowed(event.vmName, true);
-        break;
-      case chrome.fileManagerPrivate.CrostiniEventType.ROOT_ACCESS_DISALLOW:
-        this.setRootAccessAllowed(event.vmName, false);
-        break;
       case chrome.fileManagerPrivate.CrostiniEventType.SHARE:
         for (const entry of event.entries) {
           this.registerSharedPath(event.vmName, entry);
diff --git a/ui/file_manager/file_manager/background/js/crostini_unittest.js b/ui/file_manager/file_manager/background/js/crostini_unittest.js
index 241d251a..f7e9df2 100644
--- a/ui/file_manager/file_manager/background/js/crostini_unittest.js
+++ b/ui/file_manager/file_manager/background/js/crostini_unittest.js
@@ -68,19 +68,6 @@
 }
 
 /**
- * Tests init sets crostini root access allowed status.
- */
-function testInitCrostiniRootAccessAllowed() {
-  window.loadTimeData.data['CROSTINI_ROOT_ACCESS_ALLOWED'] = true;
-  crostini.initEnabled();
-  assertTrue(crostini.isRootAccessAllowed('termina'));
-
-  window.loadTimeData.data['CROSTINI_ROOT_ACCESS_ALLOWED'] = false;
-  crostini.initEnabled();
-  assertFalse(crostini.isRootAccessAllowed('termina'));
-}
-
-/**
  * Tests path sharing.
  */
 function testIsPathShared() {
diff --git a/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js b/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js
index 8cbf575..bae7d9b 100644
--- a/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js
+++ b/ui/file_manager/file_manager/background/js/runtime_loaded_test_util.js
@@ -986,17 +986,6 @@
 };
 
 /**
- * Returns the root access allowed state of the Crostini |vmName|.
- *
- * @param {!ForegroundWindow} contentWindow Window to be tested.
- * @param {string} vmName Crostini virtual machine name e.g., 'termina'.
- * @return {boolean}
- */
-test.util.sync.getCrostiniRootAccessAllowed = (contentWindow, vmName) => {
-  return contentWindow.fileManager.crostini.isRootAccessAllowed(vmName);
-};
-
-/**
  * Reports an enum metric.
  * @param {string} name The metric name.
  * @param {string} value The metric enumerator to record.
diff --git a/ui/file_manager/file_manager/foreground/elements/xf_button.js b/ui/file_manager/file_manager/foreground/elements/xf_button.js
index a4f6822..b96ed06 100644
--- a/ui/file_manager/file_manager/foreground/elements/xf_button.js
+++ b/ui/file_manager/file_manager/foreground/elements/xf_button.js
@@ -24,7 +24,6 @@
 
   /**
    * Get the custom element template string.
-   * TODO(crbug.com/947388) Replace 'button' to WebUI's 'cr-button'.
    * @private
    * @return {string}
    */
@@ -34,36 +33,6 @@
                 margin-inline-start: 0px;
               }
 
-              :host([data-category='pause']) {
-                background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR\
-                  0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczNnB4JyBoZWlnaHQ\
-                  9JzM2cHgnIHZpZXdCb3g9JzAgMCAzNiAzNic+CiAgICA8ZyBzdHJva2U9JyM\
-                  1RjYzNjgnIHN0cm9rZS13aWR0aD0nMyc+CiAgICAgICAgPGxpbmUgeDE9JzE\
-                  1JyB5MT0nMTInIHgyPScxNScgeTI9JzI0Jy8+CiAgICAgICAgPGxpbmUgeDE\
-                  9JzIxJyB5MT0nMTInIHgyPScyMScgeTI9JzI0Jy8+CiAgICA8L2c+Cjwvc3Z\
-                  nPg==') no-repeat center;
-              }
-
-              :host([data-category='cancel']) {
-                background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR\
-                  0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczNnB4JyBoZWlnaHQ\
-                  9JzM2cHgnIHZpZXdCb3g9JzAgMCAzNiAzNic+CiAgICA8ZyBzdHJva2U9JyM\
-                  1RjYzNjgnIHN0cm9rZS13aWR0aD0nMic+CiAgICAgICAgPGxpbmUgeDE9JzE\
-                  yJyB5MT0nMTInIHgyPScyNCcgeTI9JzI0Jy8+CiAgICAgICAgPGxpbmUgeDE\
-                  9JzI0JyB5MT0nMTInIHgyPScxMicgeTI9JzI0Jy8+CiAgICA8L2c+Cjwvc3Z\
-                  nPg==') no-repeat center;
-              }
-
-              :host([data-category='expand']),
-              :host([data-category='collapse']) {
-                background: url('data:image/svg+xml;base64,PHN2ZyB4bWxucz0naHR\
-                  0cDovL3d3dy53My5vcmcvMjAwMC9zdmcnIHdpZHRoPSczNnB4JyBoZWlnaHQ\
-                  9JzM2cHgnIHZpZXdCb3g9JzAgMCAzNiAzNic+CiAgICA8ZyBzdHJva2U9JyM\
-                  1RjYzNjgnIHN0cm9rZS13aWR0aD0nMic+CiAgICAgICAgPHBhdGggZmlsbD0\
-                  ibm9uZSIgZD0nTTEyLDIxbDYsLTYgNiw2Jy8+CiAgICA8L2c+Cjwvc3ZnPg=='
-                  ) no-repeat center;
-              }
-
               @keyframes setcollapse {
                 from {
                   transform: rotate(0deg);
@@ -109,6 +78,42 @@
             <cr-button id='dismiss'>$i18n{DRIVE_WELCOME_DISMISS}</cr-button>
             <cr-icon-button id='icon'></cr-icon-button>`;
   }
+
+  /**
+   * Registers this instance to listen to these attribute changes.
+   * @private
+   */
+  static get observedAttributes() {
+    return [
+      'data-category',
+    ];
+  }
+
+  /**
+   * Callback triggered by the browser when our attribute values change.
+   * @param {string} name Attribute that's changed.
+   * @param {?string} oldValue Old value of the attribute.
+   * @param {?string} newValue New value of the attribute.
+   * @private
+   */
+  attributeChangedCallback(name, oldValue, newValue) {
+    if (oldValue === newValue) {
+      return;
+    }
+    /** @type {Element} */
+    const iconButton = this.shadowRoot.querySelector('cr-icon-button');
+    if (name === 'data-category') {
+      switch (newValue) {
+        case 'cancel':
+          iconButton.setAttribute('iron-icon', 'cr:clear');
+          break;
+        case 'collapse':
+        case 'expand':
+          iconButton.setAttribute('iron-icon', 'cr:expand-less');
+          break;
+      }
+    }
+  }
 }
 
 window.customElements.define('xf-button', PanelButton);
diff --git a/ui/file_manager/file_manager/foreground/js/file_manager.js b/ui/file_manager/file_manager/foreground/js/file_manager.js
index ba43f331..25a04b6a 100644
--- a/ui/file_manager/file_manager/foreground/js/file_manager.js
+++ b/ui/file_manager/file_manager/foreground/js/file_manager.js
@@ -1217,7 +1217,7 @@
    */
   async onCrostiniChanged_(event) {
     // The background |this.crostini_| object also listens to all crostini
-    // events including enable/disable, allow/disallow and share/unshare.
+    // events including enable/disable, and share/unshare.
     // But to ensure we don't have any race conditions between bg and fg, we
     // set enabled status on it before calling |setupCrostini_| which reads
     // enabled status from it to determine whether 'Linux files' is shown.
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks.js b/ui/file_manager/file_manager/foreground/js/file_tasks.js
index f966ea85..81d6607 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks.js
@@ -100,13 +100,10 @@
 
         // Linux package installation is currently only supported for a single
         // file which is inside the Linux container, or in a shareable volume.
-        // Furthermore, linux package installation is only allowed if user has
-        // root access to the Linux container.
         // TODO(timloh): Instead of filtering these out, we probably should
         // show a dialog with an error message, similar to when attempting to
         // run Crostini tasks with non-Crostini entries.
         if (entries.length !== 1 ||
-            !crostini.isRootAccessAllowed(constants.DEFAULT_CROSTINI_VM) ||
             !(FileTasks.isCrostiniEntry(entries[0], volumeManager) ||
               crostini.canSharePath(
                   constants.DEFAULT_CROSTINI_VM, entries[0],
diff --git a/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
index 4d00aae..91056d85 100644
--- a/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
+++ b/ui/file_manager/file_manager/foreground/js/file_tasks_unittest.js
@@ -554,7 +554,6 @@
  */
 function testOpenInstallLinuxPackageDialog(callback) {
   const fileManager = setUpInstallLinuxPackage();
-  fileManager.crostini.setRootAccessAllowed('termina', true);
   const mockFileSystem = new MockFileSystem('volumeId');
   const mockEntry = MockFileEntry.create(mockFileSystem, '/test.deb');
 
@@ -579,36 +578,6 @@
 }
 
 /**
- * Tests opening a .deb file. Since root access is denied, the crostini
- * linux package install dialog is not shown.  The default action is taken.
- */
-function testInstallLinuxPackageNotAllowedNoRootAccess(callback) {
-  const fileManager = setUpInstallLinuxPackage();
-  fileManager.crostini.setRootAccessAllowed('termina', false);
-  const mockFileSystem = new MockFileSystem('volumeId');
-  const mockEntry = MockFileEntry.create(mockFileSystem, '/test.deb');
-
-  const promise = new Promise((resolve, reject) => {
-    // The Install Linux dialog is not shown,
-    // chrome.fileManagerPrivate.executeTask is called as the default action.
-    window.chrome.fileManagerPrivate.executeTask = () => {
-      resolve();
-    };
-
-    FileTasks
-        .create(
-            fileManager.volumeManager, fileManager.metadataModel,
-            fileManager.directoryModel, fileManager.ui, [mockEntry], [null],
-            mockTaskHistory, fileManager.namingController, fileManager.crostini)
-        .then(tasks => {
-          tasks.executeDefault();
-        });
-  });
-
-  reportPromise(promise, callback);
-}
-
-/**
  * Tests opening a .tini file. The import crostini image dialog should be
  * called.
  */
diff --git a/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js b/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js
index 0eb5f5f..c491216 100644
--- a/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js
+++ b/ui/file_manager/file_manager/test/js/chrome_file_manager_private_test_impl.js
@@ -19,8 +19,6 @@
   CrostiniEventType: {
     ENABLE: 'enable',
     DISABLE: 'disable',
-    ROOT_ACCESS_ALLOW: 'root_access_allow',
-    ROOT_ACCESS_DISALLOW: 'root_access_disallow',
     SHARE: 'share',
     UNSHARE: 'unshare',
   },
diff --git a/ui/file_manager/file_manager/test/js/strings.js b/ui/file_manager/file_manager/test/js/strings.js
index 110ec7f..e1904eb 100644
--- a/ui/file_manager/file_manager/test/js/strings.js
+++ b/ui/file_manager/file_manager/test/js/strings.js
@@ -10,7 +10,6 @@
 // Extend with additional fields not found in grdp files.
 loadTimeData.overrideValues({
   'CROSTINI_ENABLED': true,
-  'CROSTINI_ROOT_ACCESS_ALLOWED': true,
   'FEEDBACK_PANEL_ENABLED': false,
   'GOOGLE_DRIVE_REDEEM_URL': 'http://www.google.com/intl/en/chrome/devices' +
       '/goodies.html?utm_source=filesapp&utm_medium=banner&utm_campaign=gsg',
diff --git a/ui/file_manager/integration_tests/file_manager/context_menu.js b/ui/file_manager/integration_tests/file_manager/context_menu.js
index d95bcd5..32a57d9 100644
--- a/ui/file_manager/integration_tests/file_manager/context_menu.js
+++ b/ui/file_manager/integration_tests/file_manager/context_menu.js
@@ -295,28 +295,9 @@
   const appId = await setupAndWaitUntilReady(
       RootPath.DOWNLOADS, [ENTRIES.debPackage], []);
 
-  // Check: the default Crostini root access allowed value should be true.
-  const caller = getCaller();
-  await repeatUntil(async () => {
-    const allowed = await remoteCall.callRemoteTestUtil(
-        'getCrostiniRootAccessAllowed', appId, ['termina']);
-    if (!allowed) {
-      return pending(caller, 'Waiting for Crostini root-access-allowed true');
-    }
-  });
-
   // Disallow root access.
   await sendTestMessage({name: 'setCrostiniRootAccessAllowed', enabled: false});
 
-  // Wait for the preference to propagate to the FilesApp background page.
-  await repeatUntil(async () => {
-    const allowed = await remoteCall.callRemoteTestUtil(
-        'getCrostiniRootAccessAllowed', appId, ['termina']);
-    if (allowed) {
-      return pending(caller, 'Waiting for Crostini root-access-allowed false');
-    }
-  });
-
   // Select and right click the deb file to show its context menu.
   await selectFile(appId, 'package.deb');
   await rightClickSelectedFile(appId);
@@ -337,16 +318,6 @@
   const appId = await setupAndWaitUntilReady(
       RootPath.DOWNLOADS, [ENTRIES.debPackage], []);
 
-  // Check: the default Crostini root access allowed value should be true.
-  const caller = getCaller();
-  await repeatUntil(async () => {
-    const allowed = await remoteCall.callRemoteTestUtil(
-        'getCrostiniRootAccessAllowed', appId, ['termina']);
-    if (!allowed) {
-      return pending(caller, 'Waiting for Crostini root-access-allowed true');
-    }
-  });
-
   // Select and right click the deb file to show its context menu.
   await selectFile(appId, 'package.deb');
   await rightClickSelectedFile(appId);
diff --git a/ui/latency/latency_info.cc b/ui/latency/latency_info.cc
index d86ef39..6fb5b12 100644
--- a/ui/latency/latency_info.cc
+++ b/ui/latency/latency_info.cc
@@ -24,14 +24,12 @@
 #define CASE_TYPE(t) case ui::t:  return #t
   switch (type) {
     CASE_TYPE(INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT);
-    CASE_TYPE(LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_FIRST_SCROLL_UPDATE_ORIGINAL_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_ORIGINAL_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_UI_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_MAIN_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT);
-    CASE_TYPE(INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_ACK_RWH_COMPONENT);
     CASE_TYPE(INPUT_EVENT_LATENCY_RENDERER_MAIN_COMPONENT);
@@ -50,11 +48,6 @@
   return type == ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT;
 }
 
-bool IsTraceBeginComponent(ui::LatencyComponentType type) {
-  return (IsInputLatencyBeginComponent(type) ||
-          type == ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT);
-}
-
 // This class is for converting latency info to trace buffer friendly format.
 class LatencyInfoTracedValue
     : public base::trace_event::ConvertableToTraceFormat {
@@ -239,7 +232,7 @@
   const unsigned char* latency_info_enabled =
       g_latency_info_enabled.Get().latency_info_enabled;
 
-  if (IsTraceBeginComponent(component)) {
+  if (IsInputLatencyBeginComponent(component)) {
     // Should only ever add begin component once.
     CHECK(!began_);
     began_ = true;
@@ -263,10 +256,7 @@
       }
 
       if (trace_name_str) {
-        if (IsInputLatencyBeginComponent(component))
-          trace_name_ = std::string("InputLatency::") + trace_name_str;
-        else
-          trace_name_ = std::string("Latency::") + trace_name_str;
+        trace_name_ = std::string("InputLatency::") + trace_name_str;
       }
 
       TRACE_EVENT_COPY_ASYNC_BEGIN_WITH_TIMESTAMP0(
diff --git a/ui/latency/latency_info.h b/ui/latency/latency_info.h
index 67bcca7..997bbae 100644
--- a/ui/latency/latency_info.h
+++ b/ui/latency/latency_info.h
@@ -44,10 +44,6 @@
   // BEGIN COMPONENT is when we show the latency begin in chrome://tracing.
   // Timestamp when the input event is sent from RenderWidgetHost to renderer.
   INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
-  // In threaded scrolling, main thread scroll listener update is async to
-  // scroll processing in impl thread. This is the timestamp when we consider
-  // the main thread scroll listener update is begun.
-  LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT,
   // ---------------------------NORMAL COMPONENT-------------------------------
   // The original timestamp of the touch event which converts to scroll update.
   INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT,
@@ -66,8 +62,6 @@
   // This is special component indicating there is rendering scheduled for
   // the event associated with this LatencyInfo on impl thread.
   INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT,
-  // Timestamp when a scroll update is forwarded to the main thread.
-  INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT,
   // Original timestamp of the last event that has been coalesced into this one.
   INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT_COMPONENT,
   // Timestamp when the event's ack is received by the RWH.
diff --git a/ui/latency/mojom/latency_info.mojom b/ui/latency/mojom/latency_info.mojom
index 750202a..3937eaaf 100644
--- a/ui/latency/mojom/latency_info.mojom
+++ b/ui/latency/mojom/latency_info.mojom
@@ -11,10 +11,6 @@
   // BEGIN COMPONENT is when we show the latency begin in chrome://tracing.
   // Timestamp when the input event is sent from RenderWidgetHost to renderer.
   INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT,
-  // In threaded scrolling, main thread scroll listener update is async to
-  // scroll processing in impl thread. This is the timestamp when we consider
-  // the main thread scroll listener update is begun.
-  LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT,
   // ---------------------------NORMAL COMPONENT-------------------------------
   // The original timestamp of the touch event which converts to scroll update.
   INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT,
@@ -33,8 +29,6 @@
   // This is special component indicating there is rendering scheduled for
   // the event associated with this LatencyInfo on impl thread.
   INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT,
-  // Timestamp when a scroll update is forwarded to the main thread.
-  INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT,
   // Timestamp for last event that has been coalesced into this one.
   INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT_COMPONENT,
   // Timestamp when the event's ack is received by the RWH.
diff --git a/ui/latency/mojom/latency_info_mojom_traits.cc b/ui/latency/mojom/latency_info_mojom_traits.cc
index 1a19be29..6163e60 100644
--- a/ui/latency/mojom/latency_info_mojom_traits.cc
+++ b/ui/latency/mojom/latency_info_mojom_traits.cc
@@ -155,9 +155,6 @@
     case ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT:
       return ui::mojom::LatencyComponentType::
           INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT;
-    case ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT:
-      return ui::mojom::LatencyComponentType::
-          LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT;
     case ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT:
       return ui::mojom::LatencyComponentType::
           INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT;
@@ -178,9 +175,6 @@
     case ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT:
       return ui::mojom::LatencyComponentType::
           INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT;
-    case ui::INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT:
-      return ui::mojom::LatencyComponentType::
-          INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT;
     case ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT_COMPONENT:
       return ui::mojom::LatencyComponentType::
           INPUT_EVENT_LATENCY_SCROLL_UPDATE_LAST_EVENT_COMPONENT;
@@ -214,10 +208,6 @@
       *output = ui::INPUT_EVENT_LATENCY_BEGIN_RWH_COMPONENT;
       return true;
     case ui::mojom::LatencyComponentType::
-        LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT:
-      *output = ui::LATENCY_BEGIN_SCROLL_LISTENER_UPDATE_MAIN_COMPONENT;
-      return true;
-    case ui::mojom::LatencyComponentType::
         INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT:
       *output = ui::INPUT_EVENT_LATENCY_SCROLL_UPDATE_ORIGINAL_COMPONENT;
       return true;
@@ -244,10 +234,6 @@
         INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT:
       *output = ui::INPUT_EVENT_LATENCY_RENDERING_SCHEDULED_IMPL_COMPONENT;
       return true;
-    case ui::mojom::LatencyComponentType::
-        INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT:
-      *output = ui::INPUT_EVENT_LATENCY_FORWARD_SCROLL_UPDATE_TO_MAIN_COMPONENT;
-      return true;
     case ui::mojom::LatencyComponentType::INPUT_EVENT_LATENCY_ACK_RWH_COMPONENT:
       *output = ui::INPUT_EVENT_LATENCY_ACK_RWH_COMPONENT;
       return true;
diff --git a/ui/views/BUILD.gn b/ui/views/BUILD.gn
index d883622c..fad8e4f 100644
--- a/ui/views/BUILD.gn
+++ b/ui/views/BUILD.gn
@@ -575,6 +575,7 @@
       "win/hwnd_message_handler_delegate.h",
       "win/hwnd_util.h",
       "win/pen_event_processor.h",
+      "win/scoped_enable_unadjusted_mouse_events_win.h",
       "win/scoped_fullscreen_visibility.h",
     ]
     sources += [
@@ -583,6 +584,7 @@
       "win/hwnd_message_handler.cc",
       "win/hwnd_util_aurawin.cc",
       "win/pen_event_processor.cc",
+      "win/scoped_enable_unadjusted_mouse_events_win.cc",
       "win/scoped_fullscreen_visibility.cc",
     ]
     libs = [
diff --git a/ui/views/controls/scrollbar/overlay_scroll_bar.cc b/ui/views/controls/scrollbar/overlay_scroll_bar.cc
index 06f70c9..ac539da6 100644
--- a/ui/views/controls/scrollbar/overlay_scroll_bar.cc
+++ b/ui/views/controls/scrollbar/overlay_scroll_bar.cc
@@ -13,6 +13,7 @@
 #include "ui/native_theme/overlay_scrollbar_constants_aura.h"
 #include "ui/views/background.h"
 #include "ui/views/border.h"
+#include "ui/views/layout/fill_layout.h"
 
 namespace views {
 namespace {
@@ -125,44 +126,25 @@
 }
 
 OverlayScrollBar::OverlayScrollBar(bool horizontal) : ScrollBar(horizontal) {
-  auto* thumb = new Thumb(this);
-  SetThumb(thumb);
-  thumb->Init();
   set_notify_enter_exit_on_child(true);
   SetPaintToLayer();
   layer()->SetMasksToBounds(true);
   layer()->SetFillsBoundsOpaquely(false);
+
+  // Allow the thumb to take up the whole size of the scrollbar.  Layout need
+  // only set the thumb cross-axis coordinate; ScrollBar::Update() will set the
+  // thumb size/offset.
+  SetLayoutManager(std::make_unique<views::FillLayout>());
+  auto* thumb = new Thumb(this);
+  SetThumb(thumb);
+  thumb->Init();
 }
 
 OverlayScrollBar::~OverlayScrollBar() = default;
 
-gfx::Rect OverlayScrollBar::GetTrackBounds() const {
-  gfx::Rect local = GetLocalBounds();
-  // The track has to be wide enough for the thumb.
-  local.Inset(gfx::Insets(IsHorizontal() ? -kThumbHoverOffset : 0,
-                          IsHorizontal() ? 0 : -kThumbHoverOffset, 0, 0));
-  return local;
-}
-
-int OverlayScrollBar::GetThickness() const {
-  return kThumbThickness;
-}
-
-bool OverlayScrollBar::OverlapsContent() const {
-  return true;
-}
-
-void OverlayScrollBar::Layout() {
-  gfx::Rect thumb_bounds = GetTrackBounds();
-  BaseScrollBarThumb* thumb = GetThumb();
-  if (IsHorizontal()) {
-    thumb_bounds.set_x(thumb->x());
-    thumb_bounds.set_width(thumb->width());
-  } else {
-    thumb_bounds.set_y(thumb->y());
-    thumb_bounds.set_height(thumb->height());
-  }
-  thumb->SetBoundsRect(thumb_bounds);
+gfx::Insets OverlayScrollBar::GetInsets() const {
+  return IsHorizontal() ? gfx::Insets(-kThumbHoverOffset, 0, 0, 0)
+                        : gfx::Insets(0, -kThumbHoverOffset, 0, 0);
 }
 
 void OverlayScrollBar::OnMouseEntered(const ui::MouseEvent& event) {
@@ -173,6 +155,18 @@
   StartHideCountdown();
 }
 
+bool OverlayScrollBar::OverlapsContent() const {
+  return true;
+}
+
+gfx::Rect OverlayScrollBar::GetTrackBounds() const {
+  return GetContentsBounds();
+}
+
+int OverlayScrollBar::GetThickness() const {
+  return kThumbThickness;
+}
+
 void OverlayScrollBar::Show() {
   layer()->SetOpacity(1.0f);
   hide_timer_.Stop();
diff --git a/ui/views/controls/scrollbar/overlay_scroll_bar.h b/ui/views/controls/scrollbar/overlay_scroll_bar.h
index d39b609..b2656158 100644
--- a/ui/views/controls/scrollbar/overlay_scroll_bar.h
+++ b/ui/views/controls/scrollbar/overlay_scroll_bar.h
@@ -20,18 +20,13 @@
   explicit OverlayScrollBar(bool horizontal);
   ~OverlayScrollBar() override;
 
- protected:
-  // ScrollBar overrides:
-  gfx::Rect GetTrackBounds() const override;
-
-  // ScrollBar overrides:
-  int GetThickness() const override;
-  bool OverlapsContent() const override;
-
-  // View overrides:
-  void Layout() override;
+  // ScrollBar:
+  gfx::Insets GetInsets() const override;
   void OnMouseEntered(const ui::MouseEvent& event) override;
   void OnMouseExited(const ui::MouseEvent& event) override;
+  bool OverlapsContent() const override;
+  gfx::Rect GetTrackBounds() const override;
+  int GetThickness() const override;
 
  private:
   class Thumb : public BaseScrollBarThumb {
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
index d5777ca..2f78bf6 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.cc
@@ -626,6 +626,11 @@
   ::SetCursorPos(cursor_location.x, cursor_location.y);
 }
 
+std::unique_ptr<aura::ScopedEnableUnadjustedMouseEvents>
+DesktopWindowTreeHostWin::RequestUnadjustedMovement() {
+  return message_handler_->RegisterUnadjustedMouseEvent();
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // DesktopWindowTreeHostWin, wm::AnimationHost implementation:
 
@@ -903,6 +908,7 @@
   // with the event.
   if (window()->occlusion_state() == aura::Window::OcclusionState::OCCLUDED)
     UMA_HISTOGRAM_BOOLEAN("OccludedWindowMouseEvents", true);
+
   SendEventToSink(event);
   return event->handled();
 }
diff --git a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
index 00d25fcb..e63ced1 100644
--- a/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
+++ b/ui/views/widget/desktop_aura/desktop_window_tree_host_win.h
@@ -141,6 +141,8 @@
   void OnCursorVisibilityChangedNative(bool show) override;
   void MoveCursorToScreenLocationInPixels(
       const gfx::Point& location_in_pixels) override;
+  std::unique_ptr<aura::ScopedEnableUnadjustedMouseEvents>
+  RequestUnadjustedMovement() override;
 
   // Overridden from aura::client::AnimationHost
   void SetHostTransitionOffsets(
diff --git a/ui/views/win/hwnd_message_handler.cc b/ui/views/win/hwnd_message_handler.cc
index 0fa5dab..617aa51 100644
--- a/ui/views/win/hwnd_message_handler.cc
+++ b/ui/views/win/hwnd_message_handler.cc
@@ -320,6 +320,22 @@
   }
 }
 
+int GetFlagsFromRawInputMessage(RAWINPUT* input) {
+  int flags = ui::EF_NONE;
+  if (input->data.mouse.usButtonFlags & RI_MOUSE_BUTTON_1_DOWN)
+    flags |= ui::EF_LEFT_MOUSE_BUTTON;
+  if (input->data.mouse.usButtonFlags & RI_MOUSE_BUTTON_2_DOWN)
+    flags |= ui::EF_RIGHT_MOUSE_BUTTON;
+  if (input->data.mouse.usButtonFlags & RI_MOUSE_BUTTON_3_DOWN)
+    flags |= ui::EF_MIDDLE_MOUSE_BUTTON;
+  if (input->data.mouse.usButtonFlags & RI_MOUSE_BUTTON_4_DOWN)
+    flags |= ui::EF_BACK_MOUSE_BUTTON;
+  if (input->data.mouse.usButtonFlags & RI_MOUSE_BUTTON_5_DOWN)
+    flags |= ui::EF_FORWARD_MOUSE_BUTTON;
+
+  return ui::GetModifiersFromKeyState() | flags;
+}
+
 constexpr auto kTouchDownContextResetTimeout =
     base::TimeDelta::FromMilliseconds(500);
 
@@ -993,6 +1009,18 @@
       hwnd());
 }
 
+std::unique_ptr<aura::ScopedEnableUnadjustedMouseEvents>
+HWNDMessageHandler::RegisterUnadjustedMouseEvent() {
+  if (!base::FeatureList::IsEnabled(::features::kPointerLockOptions))
+    return nullptr;
+
+  std::unique_ptr<ScopedEnableUnadjustedMouseEventsWin> scoped_enable =
+      ScopedEnableUnadjustedMouseEventsWin::StartMonitor(this);
+
+  DCHECK(using_wm_input_);
+  return scoped_enable;
+}
+
 ////////////////////////////////////////////////////////////////////////////////
 // HWNDMessageHandler, gfx::WindowImpl overrides:
 
@@ -1131,6 +1159,16 @@
   return ret;
 }
 
+LRESULT HWNDMessageHandler::HandleInputMessage(unsigned int message,
+                                               WPARAM w_param,
+                                               LPARAM l_param,
+                                               bool* handled) {
+  base::WeakPtr<HWNDMessageHandler> ref(msg_handler_weak_factory_.GetWeakPtr());
+  LRESULT ret = OnInputEvent(message, w_param, l_param);
+  *handled = !ref.get() || msg_handled_;
+  return ret;
+}
+
 LRESULT HWNDMessageHandler::HandleScrollMessage(unsigned int message,
                                                 WPARAM w_param,
                                                 LPARAM l_param,
@@ -2023,6 +2061,54 @@
   return -1;
 }
 
+LRESULT HWNDMessageHandler::OnInputEvent(UINT message,
+                                         WPARAM w_param,
+                                         LPARAM l_param) {
+  if (!using_wm_input_)
+    return -1;
+
+  HRAWINPUT input_handle = reinterpret_cast<HRAWINPUT>(l_param);
+
+  // Get the size of the input record.
+  UINT size = 0;
+  UINT result = ::GetRawInputData(input_handle, RID_INPUT, nullptr, &size,
+                                  sizeof(RAWINPUTHEADER));
+  if (result == static_cast<UINT>(-1)) {
+    PLOG(ERROR) << "GetRawInputData() failed";
+    return 0;
+  }
+  DCHECK_EQ(0u, result);
+
+  // Retrieve the input record.
+  uint8_t buffer[size];
+  RAWINPUT* input = reinterpret_cast<RAWINPUT*>(&buffer);
+  result = ::GetRawInputData(input_handle, RID_INPUT, &buffer, &size,
+                             sizeof(RAWINPUTHEADER));
+  if (result == static_cast<UINT>(-1)) {
+    PLOG(ERROR) << "GetRawInputData() failed";
+    return 0;
+  }
+  DCHECK_EQ(size, result);
+
+  if (input->header.dwType == RIM_TYPEMOUSE &&
+      input->data.mouse.usButtonFlags != RI_MOUSE_WHEEL) {
+    POINT cursor_pos = {0};
+    ::GetCursorPos(&cursor_pos);
+    ScreenToClient(hwnd(), &cursor_pos);
+    ui::MouseEvent event(
+        ui::ET_MOUSE_MOVED, gfx::PointF(cursor_pos.x, cursor_pos.y),
+        gfx::PointF(cursor_pos.x, cursor_pos.y), ui::EventTimeForNow(),
+        GetFlagsFromRawInputMessage(input), 0);
+    if (!(input->data.mouse.usFlags & MOUSE_MOVE_ABSOLUTE)) {
+      ui::MouseEvent::DispatcherApi(&event).set_movement(
+          gfx::Vector2dF(input->data.mouse.lLastX, input->data.mouse.lLastY));
+    }
+    delegate_->HandleMouseEvent(&event);
+  }
+
+  return ::DefRawInputProc(&input, 1, sizeof(RAWINPUTHEADER));
+}
+
 void HWNDMessageHandler::OnMove(const gfx::Point& point) {
   delegate_->HandleMove();
   SetMsgHandled(FALSE);
@@ -2973,6 +3059,13 @@
                : 1;
   }
 
+  // Suppress |ET_MOUSE_MOVED| and |ET_MOUSE_DRAGGED| events from WM_MOUSE*
+  // messages when using WM_INPUT.
+  if (using_wm_input_ && (event.type() == ui::ET_MOUSE_MOVED ||
+                          event.type() == ui::ET_MOUSE_DRAGGED)) {
+    return 0;
+  }
+
   // There are cases where the code handling the message destroys the window,
   // so use the weak ptr to check if destruction occured or not.
   base::WeakPtr<HWNDMessageHandler> ref(msg_handler_weak_factory_.GetWeakPtr());
diff --git a/ui/views/win/hwnd_message_handler.h b/ui/views/win/hwnd_message_handler.h
index 7223a9a..4044afc 100644
--- a/ui/views/win/hwnd_message_handler.h
+++ b/ui/views/win/hwnd_message_handler.h
@@ -33,6 +33,7 @@
 #include "ui/gfx/win/window_impl.h"
 #include "ui/views/views_export.h"
 #include "ui/views/win/pen_event_processor.h"
+#include "ui/views/win/scoped_enable_unadjusted_mouse_events_win.h"
 #include "ui/views/window/window_resize_utils.h"
 
 namespace gfx {
@@ -188,6 +189,13 @@
   }
   bool is_translucent() const { return is_translucent_; }
 
+  std::unique_ptr<aura::ScopedEnableUnadjustedMouseEvents>
+  RegisterUnadjustedMouseEvent();
+  void set_using_wm_input(bool using_wm_input) {
+    using_wm_input_ = using_wm_input;
+  }
+  bool using_wm_input() { return using_wm_input_; }
+
  private:
   friend class ::views::test::DesktopWindowTreeHostWinTestApi;
 
@@ -224,6 +232,10 @@
                                WPARAM w_param,
                                LPARAM l_param,
                                bool* handled) override;
+  LRESULT HandleInputMessage(unsigned int message,
+                             WPARAM w_param,
+                             LPARAM l_param,
+                             bool* handled) override;
   LRESULT HandleScrollMessage(unsigned int message,
                               WPARAM w_param,
                               LPARAM l_param,
@@ -382,6 +394,7 @@
     CR_MESSAGE_HANDLER_EX(WM_SYSKEYDOWN, OnKeyEvent)
     CR_MESSAGE_HANDLER_EX(WM_SYSKEYUP, OnKeyEvent)
 
+    CR_MESSAGE_HANDLER_EX(WM_INPUT, OnInputEvent)
     // IME Events.
     CR_MESSAGE_HANDLER_EX(WM_IME_SETCONTEXT, OnImeMessages)
     CR_MESSAGE_HANDLER_EX(WM_IME_STARTCOMPOSITION, OnImeMessages)
@@ -471,6 +484,7 @@
   LRESULT OnGetObject(UINT message, WPARAM w_param, LPARAM l_param);
   LRESULT OnImeMessages(UINT message, WPARAM w_param, LPARAM l_param);
   void OnInitMenu(HMENU menu);
+  LRESULT OnInputEvent(UINT message, WPARAM w_param, LPARAM l_param);
   void OnInputLangChange(DWORD character_set, HKL input_language_id);
   LRESULT OnKeyEvent(UINT message, WPARAM w_param, LPARAM l_param);
   void OnKillFocus(HWND focused_window);
@@ -767,6 +781,9 @@
   // True if user is in remote session.
   bool is_remote_session_;
 
+  // True if is handling mouse WM_INPUT messages.
+  bool using_wm_input_ = false;
+
   // This is a map of the HMONITOR to full screeen window instance. It is safe
   // to keep a raw pointer to the HWNDMessageHandler instance as we track the
   // window destruction and ensure that the map is cleaned up.
diff --git a/ui/views/win/scoped_enable_unadjusted_mouse_events_win.cc b/ui/views/win/scoped_enable_unadjusted_mouse_events_win.cc
new file mode 100644
index 0000000..f95cd26
--- /dev/null
+++ b/ui/views/win/scoped_enable_unadjusted_mouse_events_win.cc
@@ -0,0 +1,55 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#include "ui/views/win/scoped_enable_unadjusted_mouse_events_win.h"
+
+#include "ui/views/win/hwnd_message_handler.h"
+
+namespace views {
+namespace {
+
+// From the HID Usage Tables specification.
+constexpr USHORT kGenericDesktopPage = 1;
+constexpr USHORT kMouseUsage = 2;
+
+std::unique_ptr<RAWINPUTDEVICE> GetRawInputDevices(HWND hwnd, DWORD flags) {
+  std::unique_ptr<RAWINPUTDEVICE> device = std::make_unique<RAWINPUTDEVICE>();
+  device->dwFlags = flags;
+  device->usUsagePage = kGenericDesktopPage;
+  device->usUsage = kMouseUsage;
+  device->hwndTarget = hwnd;
+  return device;
+}
+
+}  // namespace
+
+ScopedEnableUnadjustedMouseEventsWin::ScopedEnableUnadjustedMouseEventsWin(
+    HWNDMessageHandler* owner)
+    : owner_(owner) {}
+
+ScopedEnableUnadjustedMouseEventsWin::~ScopedEnableUnadjustedMouseEventsWin() {
+  // Stop receiving raw input.
+  std::unique_ptr<RAWINPUTDEVICE> device(GetRawInputDevices(0, RIDEV_REMOVE));
+  if (!RegisterRawInputDevices(device.get(), 1, sizeof(*device)))
+    PLOG(INFO) << "RegisterRawInputDevices() failed for RIDEV_REMOVE ";
+
+  DCHECK(owner_->using_wm_input());
+  owner_->set_using_wm_input(false);
+}
+
+// static
+std::unique_ptr<ScopedEnableUnadjustedMouseEventsWin>
+ScopedEnableUnadjustedMouseEventsWin::StartMonitor(HWNDMessageHandler* owner) {
+  std::unique_ptr<RAWINPUTDEVICE> device(
+      GetRawInputDevices(owner->hwnd(), RIDEV_INPUTSINK));
+  if (!RegisterRawInputDevices(device.get(), 1, sizeof(*device))) {
+    PLOG(INFO) << "RegisterRawInputDevices() failed for RIDEV_INPUTSINK ";
+    return nullptr;
+  }
+  DCHECK(!owner->using_wm_input());
+  owner->set_using_wm_input(true);
+  return std::make_unique<ScopedEnableUnadjustedMouseEventsWin>(owner);
+}
+
+}  // namespace views
diff --git a/ui/views/win/scoped_enable_unadjusted_mouse_events_win.h b/ui/views/win/scoped_enable_unadjusted_mouse_events_win.h
new file mode 100644
index 0000000..55b017e
--- /dev/null
+++ b/ui/views/win/scoped_enable_unadjusted_mouse_events_win.h
@@ -0,0 +1,37 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+#ifndef UI_VIEWS_WIN_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_WIN_H_
+#define UI_VIEWS_WIN_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_WIN_H_
+
+#include <memory>
+
+#include "base/macros.h"
+#include "ui/aura/scoped_enable_unadjusted_mouse_events.h"
+
+namespace views {
+
+class HWNDMessageHandler;
+
+// This class handles register and unregister unadjusted mouse events on
+// windows. Destroying an instance of this class will unregister unadjusted
+// mouse events and stops handling mouse WM_INPUT messages.
+class ScopedEnableUnadjustedMouseEventsWin
+    : public aura::ScopedEnableUnadjustedMouseEvents {
+ public:
+  explicit ScopedEnableUnadjustedMouseEventsWin(HWNDMessageHandler* owner);
+  ~ScopedEnableUnadjustedMouseEventsWin() override;
+
+  // Register to receive raw mouse input. If success, creates a new
+  // ScopedEnableUnadjustedMouseEventsWin instance.
+  static std::unique_ptr<ScopedEnableUnadjustedMouseEventsWin> StartMonitor(
+      HWNDMessageHandler* owner);
+
+  HWNDMessageHandler* owner_;
+
+  DISALLOW_COPY_AND_ASSIGN(ScopedEnableUnadjustedMouseEventsWin);
+};
+}  // namespace views
+
+#endif  // UI_VIEWS_WIN_SCOPED_ENABLE_UNADJUSTED_MOUSE_EVENTS_WIN_H_
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/BrowserControllerImpl.java b/weblayer/browser/java/org/chromium/weblayer_private/BrowserControllerImpl.java
index 908a9c7..b01eb1d 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/BrowserControllerImpl.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/BrowserControllerImpl.java
@@ -10,6 +10,7 @@
 import android.view.MotionEvent;
 import android.view.View;
 import android.view.ViewGroup.LayoutParams;
+import android.webkit.ValueCallback;
 import android.widget.FrameLayout;
 
 import org.chromium.base.annotations.JNINamespace;
@@ -149,9 +150,10 @@
     }
 
     @Override
-    public void setSupportsEmbedding(boolean enable) {
+    public void setSupportsEmbedding(boolean enable, IObjectWrapper callback) {
         mContentViewRenderView.requestMode(enable ? ContentViewRenderView.MODE_TEXTURE_VIEW
-                                                  : ContentViewRenderView.MODE_SURFACE_VIEW);
+                                                  : ContentViewRenderView.MODE_SURFACE_VIEW,
+                (ValueCallback<Boolean>) ObjectWrapper.unwrap(callback, ValueCallback.class));
     }
 
     @NativeMethods
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java b/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java
index 9cc767c..708f04d1 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java
+++ b/weblayer/browser/java/org/chromium/weblayer_private/ContentViewRenderView.java
@@ -12,6 +12,7 @@
 import android.view.SurfaceView;
 import android.view.TextureView;
 import android.view.View;
+import android.webkit.ValueCallback;
 import android.widget.FrameLayout;
 
 import androidx.annotation.IntDef;
@@ -19,12 +20,15 @@
 import org.chromium.base.annotations.CalledByNative;
 import org.chromium.base.annotations.JNINamespace;
 import org.chromium.base.annotations.NativeMethods;
+import org.chromium.base.task.PostTask;
+import org.chromium.content_public.browser.UiThreadTaskTraits;
 import org.chromium.content_public.browser.WebContents;
 import org.chromium.ui.base.WindowAndroid;
 import org.chromium.ui.resources.ResourceManager;
 
 import java.lang.annotation.Retention;
 import java.lang.annotation.RetentionPolicy;
+import java.util.ArrayList;
 
 /***
  * This view is used by a ContentView to render its content.
@@ -35,18 +39,15 @@
 @JNINamespace("weblayer")
 public class ContentViewRenderView extends FrameLayout {
     @Retention(RetentionPolicy.SOURCE)
-    @IntDef({MODE_UNINITIALIZED, MODE_SURFACE_VIEW, MODE_SURFACE_VIEW})
+    @IntDef({MODE_SURFACE_VIEW, MODE_SURFACE_VIEW})
     public @interface Mode {}
-    private static final int MODE_UNINITIALIZED = -1;
     public static final int MODE_SURFACE_VIEW = 0;
     public static final int MODE_TEXTURE_VIEW = 1;
 
     // This is mode that is requested by client.
-    @Mode
-    private int mRequestedMode;
+    private SurfaceData mRequested;
     // This is the mode that last supplied the Surface to the compositor.
-    @Mode
-    private int mCurrentMode;
+    private SurfaceData mCurrent;
 
     // The native side of this object.
     private long mNativeContentViewRenderView;
@@ -54,16 +55,277 @@
     private WindowAndroid mWindowAndroid;
     private WebContents mWebContents;
 
-    private SurfaceHolder.Callback mSurfaceCallback;
-    private SurfaceView mSurfaceView;
-
-    private TextureView mTextureView;
-    private TextureView.SurfaceTextureListener mSurfaceTextureListener;
-
     private int mBackgroundColor;
     private int mWidth;
     private int mHeight;
 
+    // Common interface to listen to surface related events.
+    private interface SurfaceEventListener {
+        void surfaceCreated();
+        void surfaceChanged(
+                Surface surface, boolean canBeUsedWithSurfaceControl, int width, int height);
+        void surfaceDestroyed();
+    }
+
+    // Non-static implementation of SurfaceEventListener that forward calls to native Compositor.
+    // It is also responsible for updating |mRequested| and |mCurrent|.
+    private class SurfaceEventListenerImpl implements SurfaceEventListener {
+        private SurfaceData mSurfaceData;
+
+        public void setRequestData(SurfaceData surfaceData) {
+            assert mSurfaceData == null;
+            mSurfaceData = surfaceData;
+        }
+
+        @Override
+        public void surfaceCreated() {
+            assert mNativeContentViewRenderView != 0;
+            assert mSurfaceData == ContentViewRenderView.this.mRequested
+                    || mSurfaceData == ContentViewRenderView.this.mCurrent;
+            if (ContentViewRenderView.this.mCurrent != null
+                    && ContentViewRenderView.this.mCurrent != mSurfaceData) {
+                ContentViewRenderView.this.mCurrent.destroy();
+            }
+            ContentViewRenderView.this.mCurrent = mSurfaceData;
+            ContentViewRenderViewJni.get().surfaceCreated(
+                    mNativeContentViewRenderView, ContentViewRenderView.this);
+        }
+
+        @Override
+        public void surfaceChanged(
+                Surface surface, boolean canBeUsedWithSurfaceControl, int width, int height) {
+            assert mNativeContentViewRenderView != 0;
+            assert mSurfaceData == ContentViewRenderView.this.mCurrent;
+            ContentViewRenderViewJni.get().surfaceChanged(mNativeContentViewRenderView,
+                    ContentViewRenderView.this, canBeUsedWithSurfaceControl, width, height,
+                    surface);
+            if (mWebContents != null) {
+                ContentViewRenderViewJni.get().onPhysicalBackingSizeChanged(
+                        mNativeContentViewRenderView, ContentViewRenderView.this, mWebContents,
+                        width, height);
+            }
+        }
+
+        @Override
+        public void surfaceDestroyed() {
+            assert mNativeContentViewRenderView != 0;
+            assert mSurfaceData == ContentViewRenderView.this.mCurrent;
+            ContentViewRenderViewJni.get().surfaceDestroyed(
+                    mNativeContentViewRenderView, ContentViewRenderView.this);
+        }
+    }
+
+    // Abstract differences between SurfaceView and TextureView behind this class.
+    // Also responsible for holding and calling callbacks.
+    private static class SurfaceData implements SurfaceEventListener {
+        @Mode
+        private final int mMode;
+        private final SurfaceEventListener mListener;
+        private final FrameLayout mParent;
+
+        private boolean mCreated;
+        private boolean mDestroyed;
+
+        private final SurfaceHolderCallback mSurfaceCallback;
+        private final SurfaceView mSurfaceView;
+
+        private final TextureView mTextureView;
+        private final TextureViewSurfaceTextureListener mSurfaceTextureListener;
+
+        private final ArrayList<ValueCallback<Boolean>> mModeCallbacks = new ArrayList<>();
+
+        public SurfaceData(@Mode int mode, FrameLayout parent, SurfaceEventListener listener,
+                int backgroundColor) {
+            mMode = mode;
+            mListener = listener;
+            mParent = parent;
+            if (mode == MODE_SURFACE_VIEW) {
+                mSurfaceView = new SurfaceView(parent.getContext());
+                mSurfaceView.setZOrderMediaOverlay(true);
+                mSurfaceView.setBackgroundColor(backgroundColor);
+
+                mSurfaceCallback = new SurfaceHolderCallback(this);
+                mSurfaceView.getHolder().addCallback(mSurfaceCallback);
+
+                parent.addView(mSurfaceView,
+                        new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
+                                FrameLayout.LayoutParams.MATCH_PARENT));
+                mSurfaceView.setVisibility(View.VISIBLE);
+
+                mTextureView = null;
+                mSurfaceTextureListener = null;
+            } else if (mode == MODE_TEXTURE_VIEW) {
+                mTextureView = new TextureView(parent.getContext());
+                mSurfaceTextureListener = new TextureViewSurfaceTextureListener(this);
+                mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
+
+                mTextureView.setVisibility(VISIBLE);
+                parent.addView(mTextureView,
+                        new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
+                                FrameLayout.LayoutParams.MATCH_PARENT));
+
+                mSurfaceView = null;
+                mSurfaceCallback = null;
+            } else {
+                throw new RuntimeException("Illegal mode: " + mode);
+            }
+            parent.postInvalidateOnAnimation();
+        }
+
+        public @Mode int getMode() {
+            return mMode;
+        }
+
+        public void addCallback(ValueCallback<Boolean> callback) {
+            assert !mDestroyed;
+            mModeCallbacks.add(callback);
+            if (mCreated) runCallbacks();
+        }
+
+        public void destroy() {
+            if (mDestroyed) return;
+            mDestroyed = true;
+            if (mMode == MODE_SURFACE_VIEW) {
+                mParent.removeView(mSurfaceView);
+                mSurfaceView.getHolder().removeCallback(mSurfaceCallback);
+            } else if (mMode == MODE_TEXTURE_VIEW) {
+                mParent.removeView(mTextureView);
+                mTextureView.setSurfaceTextureListener(null);
+            } else {
+                assert false;
+            }
+
+            runCallbacks();
+        }
+
+        public void setBackgroundColor(int color) {
+            assert !mDestroyed;
+            if (mMode == MODE_SURFACE_VIEW) {
+                mSurfaceView.setBackgroundColor(color);
+            }
+        }
+
+        public void didSwapFrame() {
+            if (mSurfaceView != null && mSurfaceView.getBackground() != null) {
+                mSurfaceView.post(new Runnable() {
+                    @Override
+                    public void run() {
+                        if (mSurfaceView != null) mSurfaceView.setBackgroundResource(0);
+                    }
+                });
+            }
+        }
+
+        @Override
+        public void surfaceCreated() {
+            if (mDestroyed) return;
+
+            if (!mCreated) {
+                mCreated = true;
+                runCallbacks();
+            }
+
+            // On pre-M Android, layers start in the hidden state until a relayout happens.
+            // There is a bug that manifests itself when entering overlay mode on pre-M devices,
+            // where a relayout never happens. This bug is out of Chromium's control, but can be
+            // worked around by forcibly re-setting the visibility of the surface view.
+            // Otherwise, the screen stays black, and some tests fail.
+            if (mSurfaceView != null) {
+                mSurfaceView.setVisibility(mSurfaceView.getVisibility());
+            }
+            mListener.surfaceCreated();
+        }
+
+        @Override
+        public void surfaceChanged(
+                Surface surface, boolean canBeUsedWithSurfaceControl, int width, int height) {
+            if (mDestroyed) return;
+            mListener.surfaceChanged(surface, canBeUsedWithSurfaceControl, width, height);
+        }
+
+        @Override
+        public void surfaceDestroyed() {
+            if (mDestroyed) return;
+            mListener.surfaceDestroyed();
+        }
+
+        private void runCallbacks() {
+            assert mCreated;
+            // PostTask to avoid possible reentrancy problems with embedder code.
+            PostTask.postTask(UiThreadTaskTraits.DEFAULT, () -> {
+                ArrayList<ValueCallback<Boolean>> clone =
+                        (ArrayList<ValueCallback<Boolean>>) mModeCallbacks.clone();
+                mModeCallbacks.clear();
+                for (ValueCallback<Boolean> run : clone) {
+                    run.onReceiveValue(!mDestroyed);
+                }
+            });
+        }
+    }
+
+    // Adapter for SurfaceHoolder.Callback.
+    private static class SurfaceHolderCallback implements SurfaceHolder.Callback {
+        private final SurfaceEventListener mListener;
+
+        public SurfaceHolderCallback(SurfaceEventListener listener) {
+            mListener = listener;
+        }
+
+        @Override
+        public void surfaceCreated(SurfaceHolder holder) {
+            mListener.surfaceCreated();
+        }
+
+        @Override
+        public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
+            mListener.surfaceChanged(holder.getSurface(), true, width, height);
+        }
+
+        @Override
+        public void surfaceDestroyed(SurfaceHolder holder) {
+            mListener.surfaceDestroyed();
+        }
+    }
+
+    // Adapter for TextureView.SurfaceTextureListener.
+    private static class TextureViewSurfaceTextureListener
+            implements TextureView.SurfaceTextureListener {
+        private final SurfaceEventListener mListener;
+
+        private SurfaceTexture mCurrentSurfaceTexture;
+        private Surface mCurrentSurface;
+
+        public TextureViewSurfaceTextureListener(SurfaceEventListener listener) {
+            mListener = listener;
+        }
+
+        @Override
+        public void onSurfaceTextureAvailable(
+                SurfaceTexture surfaceTexture, int width, int height) {
+            mListener.surfaceCreated();
+            onSurfaceTextureSizeChanged(surfaceTexture, width, height);
+        }
+
+        @Override
+        public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
+            mListener.surfaceDestroyed();
+            return true;
+        }
+
+        @Override
+        public void onSurfaceTextureSizeChanged(
+                SurfaceTexture surfaceTexture, int width, int height) {
+            if (mCurrentSurfaceTexture != surfaceTexture) {
+                mCurrentSurfaceTexture = surfaceTexture;
+                mCurrentSurface = new Surface(mCurrentSurfaceTexture);
+            }
+            mListener.surfaceChanged(mCurrentSurface, false, width, height);
+        }
+
+        @Override
+        public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {}
+    }
+
     /**
      * Constructs a new ContentViewRenderView.
      * This should be called and the {@link ContentViewRenderView} should be added to the view
@@ -73,10 +335,6 @@
      */
     public ContentViewRenderView(Context context) {
         super(context);
-
-        mCurrentMode = MODE_UNINITIALIZED;
-        mRequestedMode = MODE_UNINITIALIZED;
-
         setBackgroundColor(Color.WHITE);
     }
 
@@ -91,154 +349,24 @@
                 ContentViewRenderViewJni.get().init(ContentViewRenderView.this, rootWindow);
         assert mNativeContentViewRenderView != 0;
         mWindowAndroid = rootWindow;
-        requestMode(mode);
+        requestMode(mode, (Boolean result) -> {});
     }
 
-    public void requestMode(@Mode int mode) {
+    public void requestMode(@Mode int mode, ValueCallback<Boolean> callback) {
         assert mode == MODE_SURFACE_VIEW || mode == MODE_TEXTURE_VIEW;
-        if (mode == MODE_SURFACE_VIEW) {
-            mRequestedMode = mode;
-            initializeSurfaceView();
-        } else if (mode == MODE_TEXTURE_VIEW) {
-            mRequestedMode = mode;
-            initializeTextureView();
-        } else {
-            throw new RuntimeException("Unexpected mode: " + mode);
+        assert callback != null;
+        if (mRequested != null && mRequested.getMode() != mode) {
+            if (mRequested != mCurrent) mRequested.destroy();
+            mRequested = null;
         }
-    }
 
-    private void setCurrentMode(@Mode int mode) {
-        if (mCurrentMode == mode) return;
-
-        if (mCurrentMode == MODE_SURFACE_VIEW) {
-            uninitializeSurfaceView();
-        } else if (mCurrentMode == MODE_TEXTURE_VIEW) {
-            uninitializeTextureView();
+        if (mRequested == null) {
+            SurfaceEventListenerImpl listener = new SurfaceEventListenerImpl();
+            mRequested = new SurfaceData(mode, this, listener, mBackgroundColor);
+            listener.setRequestData(mRequested);
         }
-        mCurrentMode = mode;
-    }
-
-    private void initializeSurfaceView() {
-        if (mCurrentMode == MODE_SURFACE_VIEW) {
-            assert mSurfaceView != null;
-            assert mSurfaceCallback != null;
-            return;
-        }
-        if (mSurfaceView != null) return;
-
-        mSurfaceView = new SurfaceView(getContext());
-        mSurfaceView.setZOrderMediaOverlay(true);
-        mSurfaceView.setBackgroundColor(mBackgroundColor);
-
-        mSurfaceCallback = new SurfaceHolder.Callback() {
-            @Override
-            public void surfaceCreated(SurfaceHolder holder) {
-                if (mRequestedMode != MODE_SURFACE_VIEW) {
-                    uninitializeSurfaceView();
-                    return;
-                }
-                setCurrentMode(MODE_SURFACE_VIEW);
-                ContentViewRenderView.this.surfaceCreated();
-
-                // On pre-M Android, layers start in the hidden state until a relayout happens.
-                // There is a bug that manifests itself when entering overlay mode on pre-M devices,
-                // where a relayout never happens. This bug is out of Chromium's control, but can be
-                // worked around by forcibly re-setting the visibility of the surface view.
-                // Otherwise, the screen stays black, and some tests fail.
-                mSurfaceView.setVisibility(mSurfaceView.getVisibility());
-            }
-
-            @Override
-            public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
-                if (mCurrentMode != MODE_SURFACE_VIEW) return;
-
-                ContentViewRenderView.this.surfaceChanged(holder.getSurface(), true, width, height);
-            }
-
-            @Override
-            public void surfaceDestroyed(SurfaceHolder holder) {
-                if (mCurrentMode != MODE_SURFACE_VIEW) return;
-                ContentViewRenderView.this.surfaceDestroyed();
-            }
-        };
-        mSurfaceView.getHolder().addCallback(mSurfaceCallback);
-
-        addView(mSurfaceView,
-                new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
-                        FrameLayout.LayoutParams.MATCH_PARENT));
-        mSurfaceView.setVisibility(VISIBLE);
-    }
-
-    private void uninitializeSurfaceView() {
-        if (mSurfaceView == null) return;
-        removeView(mSurfaceView);
-        mSurfaceView.getHolder().removeCallback(mSurfaceCallback);
-        mSurfaceCallback = null;
-        mSurfaceView = null;
-    }
-
-    private void initializeTextureView() {
-        if (mCurrentMode == MODE_TEXTURE_VIEW) {
-            assert mTextureView != null;
-            return;
-        }
-        if (mTextureView != null) return;
-
-        mTextureView = new TextureView(getContext());
-
-        mSurfaceTextureListener = new TextureView.SurfaceTextureListener() {
-            private SurfaceTexture mCurrentSurfaceTexture;
-            private Surface mCurrentSurface;
-
-            @Override
-            public void onSurfaceTextureAvailable(
-                    SurfaceTexture surfaceTexture, int width, int height) {
-                if (mRequestedMode != MODE_TEXTURE_VIEW) {
-                    uninitializeTextureView();
-                    return;
-                }
-                setCurrentMode(MODE_TEXTURE_VIEW);
-
-                ContentViewRenderView.this.surfaceCreated();
-                onSurfaceTextureSizeChanged(surfaceTexture, width, height);
-            }
-
-            @Override
-            public boolean onSurfaceTextureDestroyed(SurfaceTexture surfaceTexture) {
-                if (mCurrentMode != MODE_TEXTURE_VIEW) return true;
-
-                ContentViewRenderView.this.surfaceDestroyed();
-                return true;
-            }
-
-            @Override
-            public void onSurfaceTextureSizeChanged(
-                    SurfaceTexture surfaceTexture, int width, int height) {
-                if (mCurrentMode != MODE_TEXTURE_VIEW) return;
-
-                if (mCurrentSurfaceTexture != surfaceTexture) {
-                    mCurrentSurfaceTexture = surfaceTexture;
-                    mCurrentSurface = new Surface(mCurrentSurfaceTexture);
-                }
-                ContentViewRenderView.this.surfaceChanged(mCurrentSurface, false, width, height);
-            }
-
-            @Override
-            public void onSurfaceTextureUpdated(SurfaceTexture surfaceTexture) {}
-        };
-        mTextureView.setSurfaceTextureListener(mSurfaceTextureListener);
-        mTextureView.setVisibility(VISIBLE);
-        addView(mTextureView,
-                new FrameLayout.LayoutParams(FrameLayout.LayoutParams.MATCH_PARENT,
-                        FrameLayout.LayoutParams.MATCH_PARENT));
-    }
-
-    private void uninitializeTextureView() {
-        if (mTextureView == null) return;
-        removeView(mTextureView);
-        mTextureView.setSurfaceTextureListener(null);
-        mSurfaceTextureListener = null;
-        mTextureView = null;
+        assert mRequested.getMode() == mode;
+        mRequested.addCallback(callback);
     }
 
     @Override
@@ -274,8 +402,11 @@
     public void setBackgroundColor(int color) {
         super.setBackgroundColor(color);
         mBackgroundColor = color;
-        if (mSurfaceView != null) {
-            mSurfaceView.setBackgroundColor(color);
+        if (mRequested != null) {
+            mRequested.setBackgroundColor(color);
+        }
+        if (mCurrent != null) {
+            mCurrent.setBackgroundColor(color);
         }
     }
 
@@ -284,9 +415,14 @@
      * native resource can be freed.
      */
     public void destroy() {
-        setCurrentMode(MODE_UNINITIALIZED);
-        uninitializeSurfaceView();
-        uninitializeTextureView();
+        if (mRequested != null) {
+            mRequested.destroy();
+            if (mCurrent != null && mCurrent != mRequested) {
+                mCurrent.destroy();
+            }
+        }
+        mRequested = null;
+        mCurrent = null;
         mWindowAndroid = null;
         ContentViewRenderViewJni.get().destroy(
                 mNativeContentViewRenderView, ContentViewRenderView.this);
@@ -312,40 +448,10 @@
                 mNativeContentViewRenderView, ContentViewRenderView.this);
     }
 
-    private void surfaceCreated() {
-        assert mNativeContentViewRenderView != 0;
-        ContentViewRenderViewJni.get().surfaceCreated(
-                mNativeContentViewRenderView, ContentViewRenderView.this);
-    }
-
-    private void surfaceChanged(
-            Surface surface, boolean canBeUsedWithSurfaceControl, int width, int height) {
-        assert mNativeContentViewRenderView != 0;
-        ContentViewRenderViewJni.get().surfaceChanged(mNativeContentViewRenderView,
-                ContentViewRenderView.this, canBeUsedWithSurfaceControl, width, height, surface);
-        if (mWebContents != null) {
-            ContentViewRenderViewJni.get().onPhysicalBackingSizeChanged(
-                    mNativeContentViewRenderView, ContentViewRenderView.this, mWebContents, width,
-                    height);
-        }
-    }
-
-    private void surfaceDestroyed() {
-        assert mNativeContentViewRenderView != 0;
-        ContentViewRenderViewJni.get().surfaceDestroyed(
-                mNativeContentViewRenderView, ContentViewRenderView.this);
-    }
-
     @CalledByNative
     private void didSwapFrame() {
-        if (mSurfaceView != null && mSurfaceView.getBackground() != null) {
-            post(new Runnable() {
-                @Override
-                public void run() {
-                    if (mSurfaceView != null) mSurfaceView.setBackgroundResource(0);
-                }
-            });
-        }
+        assert mCurrent != null;
+        mCurrent.didSwapFrame();
     }
 
     public long getNativeHandle() {
diff --git a/weblayer/browser/java/org/chromium/weblayer_private/aidl/IBrowserController.aidl b/weblayer/browser/java/org/chromium/weblayer_private/aidl/IBrowserController.aidl
index d6cb2b6..829cea7 100644
--- a/weblayer/browser/java/org/chromium/weblayer_private/aidl/IBrowserController.aidl
+++ b/weblayer/browser/java/org/chromium/weblayer_private/aidl/IBrowserController.aidl
@@ -18,5 +18,8 @@
 
   IObjectWrapper onCreateView() = 4;
 
-  void setSupportsEmbedding(in boolean enable) = 5;
+  // |valueCallback| is a wrapped ValueCallback<Boolean> instead. The bool value in |valueCallback|
+  // indicates is whether the request was successful. Request might fail if it is subsumed by a
+  // following request, or if this object is destroyed.
+  void setSupportsEmbedding(in boolean enable, in IObjectWrapper valueCallback) = 5;
 }
diff --git a/weblayer/public/java/BUILD.gn b/weblayer/public/java/BUILD.gn
index 1ff1edf..58bab32 100644
--- a/weblayer/public/java/BUILD.gn
+++ b/weblayer/public/java/BUILD.gn
@@ -24,6 +24,8 @@
     "org/chromium/weblayer/BrowserController.java",
     "org/chromium/weblayer/BrowserFragmentImpl.java",
     "org/chromium/weblayer/BrowserObserver.java",
+    "org/chromium/weblayer/Callback.java",
+    "org/chromium/weblayer/ListenableResult.java",
     "org/chromium/weblayer/Navigation.java",
     "org/chromium/weblayer/NavigationController.java",
     "org/chromium/weblayer/NavigationObserver.java",
diff --git a/weblayer/public/java/org/chromium/weblayer/BrowserFragmentImpl.java b/weblayer/public/java/org/chromium/weblayer/BrowserFragmentImpl.java
index 6914a11..038999ca 100644
--- a/weblayer/public/java/org/chromium/weblayer/BrowserFragmentImpl.java
+++ b/weblayer/public/java/org/chromium/weblayer/BrowserFragmentImpl.java
@@ -6,6 +6,7 @@
 
 import android.os.RemoteException;
 import android.view.View;
+import android.webkit.ValueCallback;
 
 import org.chromium.weblayer_private.aidl.APICallException;
 import org.chromium.weblayer_private.aidl.IBrowserController;
@@ -51,11 +52,21 @@
      * container view of the fragment is animated in any way, needs to be rotated or blended, or
      * need to control z-order with other views or other BrowserFragmentImpls. Note embedder should
      * keep WebLayer in the default non-embedding mode when user is interacting with the web
-     * content.
+     * content. Embedding mode does not support encrypted video.
+     * @return a ListenableResult of whether the request succeeded. A request might fail if it is
+     * subsumed by a subsequent request, or if this object is destroyed.
      */
-    public void setSupportsEmbedding(boolean enable) {
+    public ListenableResult<Boolean> setSupportsEmbedding(boolean enable) {
         try {
-            getIBrowserController().setSupportsEmbedding(enable);
+            final ListenableResult<Boolean> listenableResult = new ListenableResult<Boolean>();
+            getIBrowserController().setSupportsEmbedding(
+                    enable, ObjectWrapper.wrap(new ValueCallback<Boolean>() {
+                        @Override
+                        public void onReceiveValue(Boolean result) {
+                            listenableResult.supplyResult(result);
+                        }
+                    }));
+            return listenableResult;
         } catch (RemoteException e) {
             throw new APICallException(e);
         }
diff --git a/weblayer/public/java/org/chromium/weblayer/Callback.java b/weblayer/public/java/org/chromium/weblayer/Callback.java
new file mode 100644
index 0000000..0bd2fa1
--- /dev/null
+++ b/weblayer/public/java/org/chromium/weblayer/Callback.java
@@ -0,0 +1,11 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.weblayer;
+
+/**
+ * Simple callback that takes a generic value.
+ * @param <T> The type of value passed into the callback.
+ */
+public interface Callback<T> { void onResult(T result); }
diff --git a/weblayer/public/java/org/chromium/weblayer/ListenableResult.java b/weblayer/public/java/org/chromium/weblayer/ListenableResult.java
new file mode 100644
index 0000000..739863d
--- /dev/null
+++ b/weblayer/public/java/org/chromium/weblayer/ListenableResult.java
@@ -0,0 +1,42 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.weblayer;
+
+import java.util.ArrayList;
+
+/**
+ * Represents result of async computation which can be retrieved from a callback.
+ * @param <V> The type of the computation's result.
+ */
+public final class ListenableResult<V> {
+    private boolean mHasResult;
+    private V mResult;
+    private final ArrayList<Callback<V>> mCallbacks = new ArrayList<>();
+
+    /* package */ ListenableResult() {}
+
+    /**
+     * Call the callback with the result of computation.
+     * Note callback may be called immediately.
+     */
+    public void addCallback(Callback<V> callback) {
+        if (mHasResult) {
+            callback.onResult(mResult);
+            return;
+        }
+        mCallbacks.add(callback);
+    }
+
+    /* package */ void supplyResult(V result) {
+        assert !mHasResult;
+        mResult = result;
+        mHasResult = true;
+
+        for (Callback<V> callback : mCallbacks) {
+            callback.onResult(mResult);
+        }
+        mCallbacks.clear();
+    }
+}
diff --git a/weblayer/shell/android/BUILD.gn b/weblayer/shell/android/BUILD.gn
index 3b6f88c91..d718600c 100644
--- a/weblayer/shell/android/BUILD.gn
+++ b/weblayer/shell/android/BUILD.gn
@@ -252,6 +252,7 @@
   java_files = [
     "javatests/src/org/chromium/weblayer/test/NavigationTest.java",
     "javatests/src/org/chromium/weblayer/test/SmokeTest.java",
+    "javatests/src/org/chromium/weblayer/test/RenderingTest.java",
     "javatests/src/org/chromium/weblayer/test/WebLayerShellActivityTestRule.java",
     "shell_apk/src/org/chromium/weblayer/shell/WebLayerShellActivity.java",
   ]
diff --git a/weblayer/shell/android/demo_apk/src/org/chromium/weblayer/demo/WebLayerAnimationDemoActivity.java b/weblayer/shell/android/demo_apk/src/org/chromium/weblayer/demo/WebLayerAnimationDemoActivity.java
index 3b0e3f53..55f04851 100644
--- a/weblayer/shell/android/demo_apk/src/org/chromium/weblayer/demo/WebLayerAnimationDemoActivity.java
+++ b/weblayer/shell/android/demo_apk/src/org/chromium/weblayer/demo/WebLayerAnimationDemoActivity.java
@@ -60,14 +60,20 @@
     }
 
     public static class ContainerFrameLayout extends FrameLayout {
+        private final BrowserFragmentImpl mFragment;
         private int mIndex;
         private boolean mInterceptTouchEvent;
 
-        public ContainerFrameLayout(Context context, int index) {
+        public ContainerFrameLayout(Context context, BrowserFragmentImpl fragment, int index) {
             super(context);
+            mFragment = fragment;
             mIndex = index;
         }
 
+        public BrowserFragmentImpl getFragment() {
+            return mFragment;
+        }
+
         public void setInterceptTouchEvent(boolean intercept) {
             mInterceptTouchEvent = intercept;
         }
@@ -124,15 +130,16 @@
     }
 
     private void createNewFragment(int index) {
-        ContainerFrameLayout container = new ContainerFrameLayout(this, index);
+        mBrowserFragments[index] = mProfile.createBrowserFragment(this);
+        final BrowserController controller = mBrowserFragments[index].getBrowserController();
+
+        ContainerFrameLayout container =
+                new ContainerFrameLayout(this, mBrowserFragments[index], index);
         mContainerViews[index] = container;
         int viewId = View.generateViewId();
         container.setId(viewId);
         mMainView.addView(container);
 
-        mBrowserFragments[index] = mProfile.createBrowserFragment(this);
-        final BrowserController controller = mBrowserFragments[index].getBrowserController();
-
         FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
         transaction.add(viewId, new ShellFragment(mBrowserFragments[index]));
         transaction.commit();
@@ -253,12 +260,12 @@
             mContainerViews[1].setOnClickListener(new OnClickImpl());
             mContainerViews[2].setOnClickListener(new OnClickImpl());
             mContainerViews[0].post(() -> {
-                mBrowserFragments[0].setSupportsEmbedding(true);
-                mBrowserFragments[1].setSupportsEmbedding(true);
-                mBrowserFragments[2].setSupportsEmbedding(true);
-                animateDown(mContainerViews[0]);
-                animateDown(mContainerViews[1]);
-                animateDown(mContainerViews[2]);
+                mBrowserFragments[0].setSupportsEmbedding(true).addCallback(
+                        (Boolean result) -> animateDown(mContainerViews[0]));
+                mBrowserFragments[1].setSupportsEmbedding(true).addCallback(
+                        (Boolean result) -> animateDown(mContainerViews[1]));
+                mBrowserFragments[2].setSupportsEmbedding(true).addCallback(
+                        (Boolean result) -> animateDown(mContainerViews[2]));
             });
         }
     }
@@ -284,8 +291,12 @@
                 ContainerFrameLayout container = (ContainerFrameLayout) v;
                 if (mFullscreenContainer == container) return;
 
-                mMainView.removeView(container);
-                mMainView.addView(container, 0);
+                // Move to back by bringing others to the front.
+                // This avoids detaching and reattaching any views.
+                for (int i = 0; i < 3; ++i) {
+                    if (mContainerViews[i] == container) continue;
+                    mMainView.bringChildToFront(mContainerViews[i]);
+                }
 
                 if (mFullscreenContainer != null) {
                     animateDown(mFullscreenContainer);
@@ -297,15 +308,19 @@
     }
 
     private static void animateDown(ContainerFrameLayout container) {
+        // Start animation after fullying switched from SurfaceView to TextureView.
         int index = container.getIndex();
-        container.animate()
-                .scaleX(1.0f / 3)
-                .scaleY(1.0f / 3)
-                .translationX(-container.getWidth() / 3.0f + (container.getWidth() / 3.0f * index))
-                .translationY(container.getHeight() / 3.0f)
-                .alpha(0.8f)
-                .setDuration(500);
-        container.setInterceptTouchEvent(true);
+        container.getFragment().setSupportsEmbedding(true).addCallback((Boolean result) -> {
+            container.animate()
+                    .scaleX(1.0f / 3)
+                    .scaleY(1.0f / 3)
+                    .translationX(
+                            -container.getWidth() / 3.0f + (container.getWidth() / 3.0f * index))
+                    .translationY(container.getHeight() / 3.0f)
+                    .alpha(0.8f)
+                    .setDuration(500);
+            container.setInterceptTouchEvent(true);
+        });
     }
 
     private static void animateUp(ContainerFrameLayout container) {
@@ -315,8 +330,11 @@
                 .translationX(0)
                 .translationY(0)
                 .alpha(1.0f)
-                .setDuration(500);
-        container.setInterceptTouchEvent(false);
+                .setDuration(500)
+                .withEndAction(() -> {
+                    container.getFragment().setSupportsEmbedding(false);
+                    container.setInterceptTouchEvent(false);
+                });
     }
 
     private static void animateDown(MyWebView webview) {
diff --git a/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/RenderingTest.java b/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/RenderingTest.java
new file mode 100644
index 0000000..3f62ea3
--- /dev/null
+++ b/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/RenderingTest.java
@@ -0,0 +1,82 @@
+// Copyright 2019 The Chromium Authors. All rights reserved.
+// Use of this source code is governed by a BSD-style license that can be
+// found in the LICENSE file.
+
+package org.chromium.weblayer.test;
+
+import android.support.test.filters.SmallTest;
+
+import org.junit.Assert;
+import org.junit.Rule;
+import org.junit.Test;
+import org.junit.runner.RunWith;
+
+import org.chromium.base.test.BaseJUnit4ClassRunner;
+import org.chromium.content_public.browser.test.util.TestThreadUtils;
+import org.chromium.weblayer.shell.WebLayerShellActivity;
+
+import java.util.concurrent.CountDownLatch;
+
+@RunWith(BaseJUnit4ClassRunner.class)
+public class RenderingTest {
+    @Rule
+    public WebLayerShellActivityTestRule mActivityTestRule = new WebLayerShellActivityTestRule();
+
+    @Test
+    @SmallTest
+    public void testSetSupportEmbeddingFromCallback() {
+        WebLayerShellActivity activity = mActivityTestRule.launchShellWithUrl("about:blank");
+        Assert.assertNotNull(activity);
+
+        CountDownLatch latch = new CountDownLatch(1);
+        String url = "data:text,foo";
+
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            activity.getBrowserFragmentImpl().setSupportsEmbedding(true).addCallback(
+                    (Boolean result) -> {
+                        Assert.assertTrue(result);
+                        activity.getBrowserFragmentImpl().setSupportsEmbedding(false).addCallback(
+                                (Boolean result2) -> {
+                                    Assert.assertTrue(result2);
+                                    mActivityTestRule.loadUrl(url);
+                                    latch.countDown();
+                                });
+                    });
+        });
+
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            Assert.fail(e.toString());
+        }
+        mActivityTestRule.waitForNavigation(url);
+    }
+
+    @Test
+    @SmallTest
+    public void testRepeatSetSupportEmbeddingGeneratesCallback() {
+        WebLayerShellActivity activity = mActivityTestRule.launchShellWithUrl("about:blank");
+        Assert.assertNotNull(activity);
+
+        CountDownLatch latch = new CountDownLatch(2);
+        String url = "data:text,foo";
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            activity.getBrowserFragmentImpl().setSupportsEmbedding(true).addCallback(
+                    (Boolean result) -> {
+                        Assert.assertTrue(result);
+                        latch.countDown();
+                    });
+            activity.getBrowserFragmentImpl().setSupportsEmbedding(true).addCallback(
+                    (Boolean result) -> {
+                        Assert.assertTrue(result);
+                        latch.countDown();
+                    });
+        });
+
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            Assert.fail(e.toString());
+        }
+    }
+}
diff --git a/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/SmokeTest.java b/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/SmokeTest.java
index 945087f..16a8a071 100644
--- a/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/SmokeTest.java
+++ b/weblayer/shell/android/javatests/src/org/chromium/weblayer/test/SmokeTest.java
@@ -15,6 +15,8 @@
 import org.chromium.content_public.browser.test.util.TestThreadUtils;
 import org.chromium.weblayer.shell.WebLayerShellActivity;
 
+import java.util.concurrent.CountDownLatch;
+
 @RunWith(BaseJUnit4ClassRunner.class)
 public class SmokeTest {
     @Rule
@@ -26,11 +28,23 @@
         WebLayerShellActivity activity = mActivityTestRule.launchShellWithUrl("about:blank");
         Assert.assertNotNull(activity);
 
-        TestThreadUtils.runOnUiThreadBlocking(
-                () -> { activity.getBrowserFragmentImpl().setSupportsEmbedding(true); });
-
+        CountDownLatch latch = new CountDownLatch(1);
         String url = "data:text,foo";
-        mActivityTestRule.loadUrl(url);
+
+        TestThreadUtils.runOnUiThreadBlocking(() -> {
+            activity.getBrowserFragmentImpl().setSupportsEmbedding(true).addCallback(
+                    (Boolean result) -> {
+                        Assert.assertTrue(result);
+                        mActivityTestRule.loadUrl(url);
+                        latch.countDown();
+                    });
+        });
+
+        try {
+            latch.await();
+        } catch (InterruptedException e) {
+            Assert.fail(e.toString());
+        }
         mActivityTestRule.waitForNavigation(url);
     }
 }